0

J'ai écrit quelques requêtes sur SQL Server afin d'apprendre.La différence entre deux dates

Je me demande comment puis-je obtenir la différence d'aujourd'hui entre 90 jours dans une requête SQL?

+3

recherche DATEDIFF(): http://msdn.microsoft.com/en-us/library/ms189794.aspx –

+1

En quelques minutes, secondes, quoi? –

+2

La différence entre aujourd'hui et il y a 90 jours? Je suis assez certain que c'est une constante (en ignorant les changements DST, leap secondes, etc) :-) –

Répondre

0

essayer de retourner la date et l'heure il y a exactement 90:

SELECT GETDATE()-90 

sortie:

----------------------- 
2011-05-20 10:55:12.360 

(1 row(s) affected) 

cela vous donnera la date seulement pour il y a 90 jours, avec un ti Me 00: 00: 00.000:

SELECT DATEADD(day,DATEDIFF(day,0,GETDATE()),-90) 

sortie:

----------------------- 
2011-05-20 00:00:00.000 

(1 row(s) affected) 
2

Vous voulez DATEADD, pas DATEDIFF, et vous devez décider si vous avez besoin il y a 90 jours:

SELECT DATEADD(day,-90,CURRENT_TIMESTAMP) 

ou depuis 3 mois:

SELECT DATEADD(month,-3,CURRENT_TIMESTAMP) 
+0

merci :), je comprends. Merci Curt Merci Damien_The_Unbeliever – csharper

+0

@Aaron Bertrand: bon point - ne voulait pas dire à la hâte, juste vu les OP est assez nouveau et n'a pas encore accepté les réponses, donc je voulais souligner que le poli et le droit chose à faire. –

0

Ceci tournera correctement à minuit le jour il y a 3 mois (pas 90 jours) qui semble être ce que vous voulez (08-18 -> 05-18 est 92 jours puisqu'il y avait deux 31sts là-bas).

... 
WHERE column >= DATEADD(MONTH, -3, 
    DATEADD(DAY, DATEDIFF(DAY, '20000101', CURRENT_TIMESTAMP), '20000101')); 
Questions connexes