Extrahieren von Stunden von einem Datetime (SQL Server 2005)
-
12-09-2019 - |
Frage
kann ich den Monat und den Tag extrahieren, indem Sie Day(Date())
, Month(Date())
. Ich kann nicht Stunden extrahiert, mit HOUR(Date())
. Ich erhalte die folgende Fehlermeldung.
'HOUR' is not a recognized built-in function name.
Wie kann ich Stunden extrahieren?
Lösung
SELECT DATEPART(HOUR, GETDATE());
Andere Tipps
... können Sie es auf jedem Körnigkeit Typ d.h verwenden.
DATEPART(YEAR, [date])
DATEPART(MONTH, [date])
DATEPART(DAY, [date])
DATEPART(HOUR, [date])
DATEPART(MINUTE, [date])
. (Anmerkung: Ich mag das [] um das Datum reservierte Wort, obwohl natürlich die im Fall ist Ihre Spalte mit Zeitstempel markiert ist „Datum“)
versuchen, diese auch:
DATEPART(HOUR,GETDATE())
DATEPART(HOUR, [date])
gibt die Stunde in der Militärzeit (00 bis 23)
Wenn Sie 01.00 mögen, 03.00 etc, müssen Sie es Fall aus:
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
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
Werke
Die DATEPART () Funktion wird ein einzelnes Teil eines Datum / Zeit zurückzukehren, wie Jahr, Monat, Tag, Stunde, Minute, etc.
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
Beispiel
select *
from table001
where datepart(hh,datetime) like 23
Ich kann nicht extrahieren Stunden, mit HOUR (Date ())
Es gibt einen Weg HOUR
zu nennen (ich würde es nicht empfehlen, wenn zu verwenden, da es DATEPART
Funktion ist) mit ODBC-Skalarfunktionen :
SELECT {fn HOUR(GETDATE())} AS hour
to_char (current_timestamp, 'YYYY') // nur DATE zu extrahieren to_char (current_timestamp, 'HH24') // extrahieren nur HOUR
Sie müssen verwenden Datumsteil ()
like
datepart(hour , getdate())