我可以通过使用day (Date()), month (Date())来提取月和日。我不能提取小时,HOUR(Date())。我得到以下错误。
'HOUR' is not a recognized built-in function name.
我怎样才能抽出时间?
我可以通过使用day (Date()), month (Date())来提取月和日。我不能提取小时,HOUR(Date())。我得到以下错误。
'HOUR' is not a recognized built-in function name.
我怎样才能抽出时间?
当前回答
包括上午/下午-使用以下:
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
)
其他回答
我不能提取小时,HOUR(Date())
有一种方法可以使用ODBC标量函数调用HOUR(我不建议使用它,因为有DATEPART函数):
SELECT {fn HOUR(GETDATE())} AS hour
现场演示
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 case when [am or _pm] ='PM' and datepart(HOUR,time_received)<>12
then dateadd(hour,12,time_received)
else time_received
END
from table
作品
试试这个吧:
SELECT CONVERT(CHAR(8),GETDATE(),108)
包括上午/下午-使用以下:
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
)