Je peux extraire le mois et le jour en utilisant Day(Date())
, Month(Date())
. Je ne peux pas extraire des heures, avec HOUR(Date())
. J'obtiens l'erreur suivante.
'HOUR' is not a recognized built-in function name.
Comment puis-je extraire des heures?
HOUR
au lieu d'utiliser un raccourci paresseux qui n'est pas toujours ce à quoi vous vous attendez (essayezy
). N'hésitez pas à maintenir votre propre code comme vous le souhaitez, mais pour l'enseignement, je suis opposé à la promotion d'une sténographie paresseuse qui mène à la confusion ou pire. Voir le n ° 6 ici: blogs.sqlsentry.com/aaronbertrand/… et sqlblog.com/blogs/aaron_bertrand/archive/2011/09/20/…... vous pouvez l'utiliser sur n'importe quel type de granularité c'est-à-dire:
(Remarque: j'aime bien le [] autour du mot réservé pour la date. Bien sûr, c'est au cas où votre colonne avec horodatage est étiquetée "date")
la source
Utilisez datepart .
Par exemple:
la source
essayez celui-ci aussi:
la source
DATEPART(HOUR, [date])
renvoie l'heure en heure militaire (00 à 23) Si vous voulez 1h00, 15h00, etc., vous devez la caser: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
la source
La fonction DATEPART () est utilisée pour renvoyer une seule partie d'une date / heure, telle que l'année, le mois, le jour, l'heure, les minutes, etc.
Exemple
select * from table001 where datepart(hh,datetime) like 23
la source
Essayez aussi celui-ci:
SELECT CONVERT(CHAR(8),GETDATE(),108)
la source
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
la source
Il existe un moyen d'appeler
HOUR
(je ne recommanderais pas de l'utiliser car il y a uneDATEPART
fonction) en utilisant les fonctions scalaires ODBC :SELECT {fn HOUR(GETDATE())} AS hour
LiveDemo
la source
select convert(time,GETDATE())
la source
vous devez utiliser datepart ()
la source