Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Datediff GETDATE Aggiungi

Non è un intervallo di date.

La condizione che hai lì è davvero una sola condizione:maggiore di. Il lato destro del maggiore di è 6 giorni fa, quindi la tua condizione corrisponde a qualsiasi data successiva alla data di sei giorni fa. In altre parole, non si ferma a Oggi; include domani, la prossima settimana e anche il prossimo anno.

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

È quello che vuoi davvero. Corrisponde alle date successive alla mezzanotte del giorno di 7 giorni fa e alle date precedenti alla mezzanotte di oggi (che corrisponde a qualsiasi ora di ieri).