我可以通过使用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
        )

其他回答

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

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(YEAR, [date])

DATEPART(MONTH, [date]) 

DATEPART(DAY, [date])    

DATEPART(HOUR, [date]) 

DATEPART(MINUTE, [date])

(注意:我喜欢在日期保留词周围的[]。当然,这是在情况下,你的列与时间戳被标记为“日期”)

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

作品

必须使用datepart()

like 


datepart(hour , getdate())

试试这个吧:

   DATEPART(HOUR,GETDATE())