Heim >Datenbank >MySQL-Tutorial >Wie vergleiche ich Datetime-Werte effizient nur mit dem Datumsteil in SQL Server?

Wie vergleiche ich Datetime-Werte effizient nur mit dem Datumsteil in SQL Server?

Barbara Streisand
Barbara StreisandOriginal
2025-01-05 14:41:40980Durchsuche

How to Efficiently Compare Datetime Values with Only the Date Part 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 < dateadd(day,1,'2014-02-07')

Dieser Ansatz stellt sicher, dass Datensätze, die am „07.02.2014“ erstellt wurden, unabhängig von der Zeitkomponente abgerufen werden.

Grund für die Vermeidung von Funktionen in der WHERE-Klausel

Es wird nicht empfohlen, Funktionen (z. B. konvertieren) in der WHERE-Klausel für zwei Hauptfunktionen zu verwenden Gründe:

  1. Verlust der Indexoptimierung:Funktionen auf Daten verhindern möglicherweise, dass der Optimierer Indizes verwendet, was zu langsameren Abfragen führt.
  2. Hoher Rechenaufwand :Funktionen können bei großer Anwendung einen erheblichen Rechenaufwand verursachen Datensätze.

Best Practice für Datumsbereiche

Für optimale Leistung und Genauigkeit bei der Abfrage von Datums- und Zeitbereichen empfiehlt es sich, das folgende Format zu verwenden:

WHERE col >= '20120101' AND col < '20120201'

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn