Heim >Datenbank >MySQL-Tutorial >Wie vergleiche ich Datetime-Werte effizient nur mit dem Datumsteil in SQL Server?
Vergleichen von Datetime-Werten mit nur Datum in SQL Server
Beim Abfragen einer Datenbank nach Datensätzen, die an einem bestimmten Datum erstellt wurden, ist es wichtig, Folgendes zu berücksichtigen Datum/Uhrzeit-Art der Spalte. Der Vergleich eines Datums-/Uhrzeitfelds nur mit dem Datumsteil unter Verwendung des Gleichheitsoperators (z. B. U.DateCreated = '2014-02-07') liefert möglicherweise nicht die erwarteten Ergebnisse.
Lösung 1: Verwendung von Datumsbereichen
Um ein Datum/Uhrzeit-Feld nur mit dem Datumsteil genau zu vergleichen, verwenden Sie ein Datum Bereich:
Select * from [User] U where U.DateCreated >= '2014-02-07' and U.DateCreated <p>Dieser Ansatz stellt sicher, dass Datensätze, die am „07.02.2014“ erstellt wurden, unabhängig von der Zeitkomponente abgerufen werden.</p><p><strong>Grund für die Vermeidung von Funktionen in der WHERE-Klausel </strong></p><p>Es wird nicht empfohlen, Funktionen (z. B. konvertieren) in der WHERE-Klausel für zwei Hauptfunktionen zu verwenden Gründe:</p><ol> <li> <strong>Verlust der Indexoptimierung:</strong>Funktionen auf Daten verhindern möglicherweise, dass der Optimierer Indizes verwendet, was zu langsameren Abfragen führt.</li> <li> <strong>Hoher Rechenaufwand :</strong>Funktionen können bei großer Anwendung einen erheblichen Rechenaufwand verursachen Datensätze.</li> </ol><p><strong>Best Practice für Datumsbereiche</strong></p><p>Für optimale Leistung und Genauigkeit bei der Abfrage von Datums- und Zeitbereichen empfiehlt es sich, das folgende Format zu verwenden: </p><pre class="brush:php;toolbar:false">WHERE col >= '20120101' AND col
Das obige ist der detaillierte Inhalt vonWie vergleiche ich Datetime-Werte effizient nur mit dem Datumsteil in SQL Server?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!