Extraire des heures d’un DateTime (SQL Server 2005)

Je peux extraire le mois et le jour en utilisant Day(Date()) , Month(Date()) . Je ne peux pas extraire des heures, avec HOUR(Date()) . Je reçois l’erreur suivante.

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

Comment puis-je extraire des heures?

 SELECT DATEPART(HOUR, GETDATE()); 

Documentation DATEPART

… vous pouvez l’utiliser sur n’importe quel type de granularité, à savoir:

 DATEPART(YEAR, [date]) DATEPART(MONTH, [date]) DATEPART(DAY, [date]) DATEPART(HOUR, [date]) DATEPART(MINUTE, [date]) 

(note: j’aime bien le [] autour du mot réservé à la date. Bien sûr, c’est dans le cas où votre colonne avec l’horodatage est étiquetée “date”)

Utilisez la datepart .

Par exemple:

 datepart(HOUR, date) 

essayez celui-ci aussi:

  DATEPART(HOUR,GETDATE()) 

La fonction DATEPART () permet de renvoyer une seule partie d’une date / heure, telle que l’année, le mois, le jour, l’heure, la 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 

Exemple

 select * from table001 where datepart(hh,datetime) like 23 

vous devez utiliser datepart ()

 like datepart(hour , getdate()) 

Je ne peux pas extraire des heures, avec HEURE (Date ())

Il y a un moyen d’appeler HOUR (je ne recommanderais pas de l’utiliser bien qu’il y DATEPART fonction DATEPART ) en utilisant les fonctions scalaires ODBC :

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

LiveDemo

DATEPART(HOUR, [date]) renvoie l’heure en heure militaire (00 à 23) Si vous voulez 1 heure, 3 heures, etc., vous devez la retirer:

 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 

travaux

to_char (current_timestamp, ‘AAAA’) // pour extraire uniquement DATE to_char (current_timestamp, ‘HH24’) // pour extraire uniquement l’heure