从DateTime中提取小时(SQL Server 2005)


Answers:


353
SELECT DATEPART(HOUR, GETDATE());

DATEPART 文件资料


11
请说出类似的内容,HOUR而不要使用并不总是您期望的懒惰速记(尝试y)。可以随意维护自己的代码,但是对于教学,我反对推广懒惰的速记,这会导致混乱甚至更糟。请参阅此处的#6blogs.sqlsentry.com/aaronbertrand/…sqlblog.com/blogs/aaron_bertrand/archive/2011/09/20/…–
Aaron Bertrand

3
@AaronBertrand不是“懒惰的速记”,而是有记载的缩写形式。“惰性”正在使用比最小文档版本短的简短格式,这可能有效,但可能会带来意想不到的后果。
Auspex

3
@Auspex不能强迫您不完全忽略要点或阅读我的话背后的原因。并非所记录的所有内容都是最佳实践。
亚伦·伯特兰

5
@AaronBertrand我明白了。但是,您正在尝试强制执行(如果不正确地编辑个人的答案的程度)您自己的标准。您的“最佳实践”绝非易事。
Auspex

29

...您可以在任何粒度类型上使用它,例如:

DATEPART(YEAR, [date])

DATEPART(MONTH, [date]) 

DATEPART(DAY, [date])    

DATEPART(HOUR, [date]) 

DATEPART(MINUTE, [date])

(注意:不过,我喜欢日期保留字周围的[]。当然,如果您的带有时间戳的列被标记为“日期”,则可以)



9

也试试这个:

   DATEPART(HOUR,GETDATE()) 

2

DATEPART(HOUR, [date]) 返回军事时间的小时数(00到23)。如果您需要凌晨1点,下午3点等,则需要注意以下几点:

SELECT Run_Time_Hour =
CASE DATEPART(HOUR, R.date_schedule)
    WHEN 0 THEN  '12AM'
    WHEN 1 THEN   '1AM'
    WHEN 2 THEN   '2AM'
    WHEN 3 THEN   '3AM'
    WHEN 4 THEN   '4AM'
    WHEN 5 THEN   '5AM'
    WHEN 6 THEN   '6AM'
    WHEN 7 THEN   '7AM'
    WHEN 8 THEN   '8AM'
    WHEN 9 THEN   '9AM'
    WHEN 10 THEN '10AM'
    WHEN 11 THEN '11AM'
    WHEN 12 THEN '12PM'
    ELSE CONVERT(varchar, DATEPART(HOUR, R.date_schedule)-12) + 'PM'
END
FROM
    dbo.ARCHIVE_RUN_SCHEDULE R


1
select case when [am or _pm] ='PM' and datepart(HOUR,time_received)<>12 
           then dateadd(hour,12,time_received) 
           else time_received 
       END 
from table

作品


1

DATEPART()函数用于返回日期/时间的单个部分,例如年,月,日,小时,分钟等。

datepart    ***Abbreviation

year        ***yy, yyyy 
quarter     ***qq, q 
month       ***mm, m 
dayofyear   ***dy, y 
day         ***dd, d 
week        ***wk, ww 
weekday     ***dw, w 
hour        ***hh 
minute      ***mi, n 
second      ***ss, s 
millisecond ***ms 
microsecond ***mcs 
nanosecond  ***ns 

select * 
from table001
where datepart(hh,datetime) like 23


-2

您必须使用datepart()

like 


datepart(hour , getdate())

8
您所做的贡献是什么,它重复了几乎所有其他“答案”中提供的关于此问题的信息?
辛迪·梅斯特
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.