我可以通过使用day (Date()), month (Date())来提取月和日。我不能提取小时,HOUR(Date())。我得到以下错误。

'HOUR' is not a recognized built-in function name.

我怎样才能抽出时间?


当前回答

我不能提取小时,HOUR(Date())

有一种方法可以使用ODBC标量函数调用HOUR(我不建议使用它,因为有DATEPART函数):

SELECT {fn HOUR(GETDATE())} AS hour

现场演示

其他回答

包括上午/下午-使用以下:

SELECT 
  concat(case when datepart(hour,getdate()) % 12 = 0 then 12 
              else datepart(hour,getdate()) % 12 end,
         case when datepart(hour,getdate()) < 12 then ' AM' 
              else ' PM' end
        )

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
SELECT DATEPART(HOUR, GETDATE());

DATEPART文档

试试这个吧:

   DATEPART(HOUR,GETDATE()) 

使用datepart。

例如:

datepart(hh, date)