Mysql
 sql >> Datenbank >  >> RDS >> Mysql

DATEDIFF() oder BETWEEN für Datumsbereiche in SQL-Abfragen

Ihre beiden Abfragen sind nicht gleichwertig. Der datediff Version enthält alle Werte vom 01-Jan-2013 unabhängig von der Zeit, während die Zwischenversion nur die Zeilen vom 01-Jan-2013 enthält wobei die Uhrzeit 00:00:00 ist .

Wenn Sie den Bereich prüfen und keine Berechnungen für die Spalte durchführen, kann Ihre Abfrage einen Index für Something_Date verwenden und gleichzeitig alle Werte vom 01-Jan-2013 enthalten unabhängig vom Zeitteil.

where
  SIH.[Something_Date] >= '19700101' and
  SIH.[Something_Date] < '20130102'