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?
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?
DATEDIFF
http://msdn.microsoft.com/en-us/library/ms189794.aspx
DECLARE @90DaysAgo datetime
,@Today datetime
SET @90DaysAgo = DATEADD(d, -90, GETDATE())
SET @Today = GETDATE()
SELECT DATEDIFF(d, @90DaysAgo, @Today) --Returns 90
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)
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)
merci :), je comprends. Merci Curt Merci Damien_The_Unbeliever – csharper
@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. –
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'));
recherche DATEDIFF(): http://msdn.microsoft.com/en-us/library/ms189794.aspx –
En quelques minutes, secondes, quoi? –
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) :-) –