Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Datediff GETDATE Add

Es ist keine Zeitspanne.

Die Bedingung, die Sie dort haben, ist wirklich nur eine Bedingung:größer als. Die rechte Seite von größer als ist vor 6 Tagen, sodass Ihre Bedingung mit jedem Datum übereinstimmt, das nach dem Datum vor sechs Tagen liegt. Mit anderen Worten, es hört nicht bei Heute auf; es umfasst auch morgen, nächste Woche und nächstes Jahr.

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

Das ist es, was Sie wirklich wollen. Es stimmt mit Daten überein, die nach Mitternacht des Tages vor 7 Tagen liegen, und mit Daten, die heute vor Mitternacht liegen (was eine beliebige Zeit von gestern ist).