web-dev-qa-db-fra.com

Extraction 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?

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

DATEPART documentation

288
Dave Markle

... 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])

(Remarque: J'aime bien le [] autour de la date réservée Word. Bien sûr, c'est dans le cas où votre colonne avec horodatage est étiquetée "date")

28
Milan

Utilisez datepart .

Par exemple.:

datepart(hh, date)
13
Adrian Godong

essayez celui-ci aussi:

   DATEPART(HOUR,GETDATE()) 
9
user594166

La fonction DATEPART () est utilisée pour renvoyer une partie d'une date/heure, telle que l'année, le mois, le jour, l'heure, les minutes, 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
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

travaux

1
Dani

DATEPART(HOUR, [date]) renvoie l'heure en heure militaire (00 à 23) Si vous voulez 1h, 3h, etc.

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

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

Il existe un moyen d'appeler HOUR (je ne recommanderais pas de l'utiliser car il y a une fonction DATEPART) à l'aide de fonctions scalaires ODBC :

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

LiveDemo

0
Lukasz Szozda