Получать час с даты? - PullRequest
3 голосов
/ 23 июня 2010

Как я могу выбрать час из datetime?

Я ищу эквивалент Oracle TO_CHAR( d, 'HH24' ), который возвратил бы 17 для 2010-06-23 17:22:31.


Я попытался выяснить лучшее время (лучший ответ / вопрос), чтобы задать вопрос, связанный с SQL, в StackOverflow, используя Data Explorer .Я заставил его работать, но я уверен, что есть более элегантная версия.

Select
  Left( Convert(VARCHAR(10), creationDate, 8 ), 2 ) As hour,
  Convert(Float, Count(*)) / Count(Distinct p.parentId) As ratio
From posts p
Join postTags pt On ( pt.postId = p.parentId )
Join tags t On ( t.id = pt.tagId )
Where p.postTypeId = 2 And t.tagName = '##TagName##'
Group By Left( Convert(VARCHAR(10), creationDate, 8 ), 2 )
Order BY hour

Кстати, лучшее время, кажется, между 15:00 и 16:00 - думаю, я 'я спрашиваю слишком поздно:)

Ответы [ 6 ]

4 голосов
/ 23 июня 2010

Использование DATEPART

select DATEPART(hour, DateTimeField) as Hour from Table
1 голос
/ 23 июня 2010

Это должно работать

SELECT DatePart(hh, GETDATE()) 
1 голос
/ 23 июня 2010

Используйте функцию DatePart () tsql с идентификатором детали "час"

Посмотрите на это для хорошего объяснения

http://support.microsoft.com/kb/186265

0 голосов
/ 23 июня 2010
Select DatePart(hh, CreationDate) As Hour
    , Convert(Float, Count(*)) / Count(Distinct p.parentId) As Ratio
From posts As p
    Join postTags As pt 
        On ( pt.postId = p.parentId )
    Join tags As t 
        On ( t.id = pt.tagId )
Where p.postTypeId = 2 
    And t.tagName = '##TagName##'
Group By DatePart(hh, CreationDate)
0 голосов
/ 23 июня 2010
SELECT HOUR(datetimefield) AS hour

Функция HOUR () должна выполнять эту работу.Источник http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_hour.

0 голосов
/ 23 июня 2010

datepart(hh,dateColumn) должен дать вам компонент часа для любой даты и времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...