Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Datediff GETDATE Ajouter

Ce n'est pas une période.

La condition que vous avez là n'est en réalité qu'une seule condition :supérieure à. Le côté droit de la valeur supérieure à est d'il y a 6 jours, de sorte que votre état correspond à toute date postérieure à la date d'il y a six jours. En d'autres termes, cela ne s'arrête pas à Aujourd'hui; cela inclut demain, la semaine prochaine et l'année prochaine également.

AND ( Orders.ShipDate >= DATEADD(Day, Datediff(Day,0, GetDate() -7), 0)
      AND Orders.ShipDate < DATEADD(Day, Datediff(Day,0, GetDate()), 0) )

C'est ce que tu veux vraiment. Il correspond aux dates postérieures à minuit le jour d'il y a 7 jours et aux dates antérieures à minuit aujourd'hui (c'est-à-dire à n'importe quelle heure d'hier).