GetDate () – function und diese Abfrage sind korrekt?

Ist diese Abfrage korrekt und genauer die TransferTime < (GetDate() - 3 ?

 $num_rows = $db->doQuery(' SELECT Class, TransferTime FROM USERDATA WHERE strUserId = ? AND (TransferTime < (GetDate() - 3) OR TransferTime IS NULL) ', $character); 

Wird es überprüfen, ob die strUserID und transfertime weniger als 3 Tage ist, da es nicht wirklich genau an 3 Tagen funktioniert?

GETDATE() - 3 subtrahiert 3 Tage zum aktuellen date und Uhrzeit. Wenn du diesen Filter für 3 Tage vorher verwenden 00:00:00.000 , beginnend ab 00:00:00.000 , dann musst du zuerst den TIME Teil des GETDATE() . Wenn Sie SQL server 2008+ verwenden, können Sie GETDATE() an DATE :

 WHERE TransferTime < DATEADD(DAY,-3,CONVERT(DATE,GETDATE())) 

Für frühere Versionen können Sie:

 WHERE TransferTime < DATEADD(DAY,DATEDIFF(DAY,0,GETDATE())-3,0) 

Versuchen:

 select GetDate() - 3 

es wird wirklich 72 Stunden ab dem aktuellen date + time entfernen