web-dev-qa-db-ja.com

DateTimeから時間を抽出する(SQL Server 2005)

Day(Date())Month(Date())を使って月と日を抽出できます。 HOUR(Date())で時間を抽出することはできません。次のようなエラーが出ます。

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

時間を抽出する方法

162
Efe
SELECT DATEPART(HOUR, GETDATE());

DATEPART documentation

309
Dave Markle

...あなたはどんな粒度タイプでそれを使うことができますすなわち:

DATEPART(YEAR, [date])

DATEPART(MONTH, [date]) 

DATEPART(DAY, [date])    

DATEPART(HOUR, [date]) 

DATEPART(MINUTE, [date])

(注:私はWord予約日の周りに[]が好きです。もちろん、それはあなたのタイムスタンプ付きの欄に "date"というラベルが付いている場合です)

28
Milan

datepart を使用してください。

例えば。:

datepart(hh, date)
13
Adrian Godong

これも試してみてください。

   DATEPART(HOUR,GETDATE()) 
9
user594166

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
1
Hamid Nadi
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
Dani

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
0
relgrem

HOUR(Date())では時間を抽出できません

ODBCスカラー関数 を使用してHOURを呼び出す方法があります(DATEPART関数があるため、使用することはお勧めしません)。

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

LiveDemo

0
Lukasz Szozda