Простой способ сделать это состоит в том, чтобы сделать, чтобы пользователь коснулся кнопки в ритме с ударом и считал количество касаний разделенным к этому времени.
Помимо уже приведенных предложений, есть еще одна возможность, которую я могу сделать из вашего вопроса:
- Вы по-прежнему хотите, чтобы результатом была дата
- Но вы хотите "отбросить" дни, часы и т. Д.
- Оставляем только поле даты года / месяца
SELECT
DATEADD(MONTH, DATEDIFF(MONTH, 0, <dateField>), 0) AS [year_month_date_field]
FROM
<your_table>
. Получает количество полных месяцев от базовой даты (0), а затем добавляет их к этой базовой дате. Таким образом, округляем вниз до месяца, в котором указана дата.
ПРИМЕЧАНИЕ. В SQL Server 2008 ВРЕМЯ по-прежнему будет иметь вид 00: 00: 00.000. Это не совсем то же самое, что «убрать» любые обозначения дня и времени в целом. Также ДЕНЬ установлен на первый. например, 2009-10-01 00:00: 00.000
давайте запишем это так: YEAR (anySqlDate)
и MONTH (anySqlDate)
. Попробуйте, например, с YEAR (GETDATE ())
.
I am interpreting your question in two ways.
a) You only need Month & Year seperately in which case here is the answer
select
[YEAR] = YEAR(getdate())
,[YEAR] = DATEPART(YY,getdate())
, [MONTH] = month(getdate())
,[MONTH] = DATEPART(mm,getdate())
,[MONTH NAME] = DATENAME(mm, getdate())
b)
You want to display from a given date say '2009-11-24 09:01:55.483'
in MONTH.YEAR format. So the output should come as 11.2009
in this case.
If that is supposed to be the case then try this(among other alternatives)
select [Month.Year] = STUFF(CONVERT(varchar(10), GETDATE(),104),1,3,'')
SELECT DATEPART(yy, DateVal)
SELECT DATEPART(MM, DateVal)
SELECT DATENAME(MM, DateVal)