258 votes

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()) . J'obtiens l'erreur suivante.

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

Comment puis-je extraire des heures ?

6voto

relgrem Points 31

DATEPART(HOUR, [date]) renvoie l'heure en temps militaire (00 à 23) Si vous voulez 1 heure du matin, 3 heures du soir, etc., vous devez le 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

4voto

Essayez celui-là aussi :

SELECT CONVERT(CHAR(8),GETDATE(),108)

1voto

Dani Points 11
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

0voto

lad2025 Points 38168

Je ne peux pas extraire les heures, avec HOUR(Date())

Il existe un moyen d'appeler HOUR (Je ne recommanderais cependant pas de l'utiliser car il y a DATEPART ) en utilisant Fonctions scalaires ODBC :

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

<strong><a href="http://rextester.com/BTRMC86088" rel="nofollow noreferrer"><code>LiveDemo</code></a></strong>

0voto

Shawn P. Points 1

Pour inclure AM / PM - utilisez le formulaire ci-dessous :

SELECT 
  concat(case when datepart(hour,getdate()) % 12 = 0 then 12 
              else datepart(hour,getdate()) % 12 end,
         case when datepart(hour,getdate()) < 12 then ' AM' 
              else ' PM' end
        )

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X