Heim > Datenbank > MySQL-Tutorial > Wie kann ich DATETIME- und DATE-Werte in SQL Server richtig vergleichen?

Wie kann ich DATETIME- und DATE-Werte in SQL Server richtig vergleichen?

Barbara Streisand
Freigeben: 2025-01-04 17:27:39
Original
473 Leute haben es durchsucht

How Can I Correctly Compare DATETIME and DATE Values in SQL Server?

Vergleich von Datetime mit Datum in SQL Server

Beim Vergleich eines Datetime-Werts mit nur einem Datum kann das Ergebnis unerwartet sein. Dies liegt daran, dass der Datentyp „datetime“ sowohl Datums- als auch Uhrzeitkomponenten enthält. Wenn Sie beispielsweise eine Benutzertabelle mit einer DateCreated-Spalte vom Typ datetime haben, gibt die folgende Abfrage:

Select * from [User] U
where  U.DateCreated = '2014-02-07'     
Nach dem Login kopieren

keine Datensätze zurück, obwohl der Benutzer am 07.02.2014 um 12 Uhr erstellt wurde :30:47.220.

Um eine Datumszeit genau mit nur einem Datum zu vergleichen, verwenden Sie Folgendes Methode:

Select * from [User] U 
where U.DateCreated >= '2014-02-07' and U.DateCreated < dateadd(day,1,'2014-02-07')
Nach dem Login kopieren

Diese Abfrage ist SARGable, was bedeutet, dass sie einen Index für die Spalte „DateCreated“ verwenden kann.

Warum nicht Funktionen verwenden?

Es könnte verlockend sein, Funktionen wie CONVERT zu verwenden, um die Datumskomponente aus der Datumszeit zu extrahieren. Dies wird jedoch nicht empfohlen. Verwendung von Funktionen in der WHERE-Klausel oder Join-Bedingungen:

  • Entfernt die Fähigkeit des Optimierers, einen Index für das Feld zu verwenden
  • Fügt unnötige Berechnungen für jede Datenzeile hinzu

ZWISCHEN vermeiden

ZWISCHEN sollte auch vermieden werden, wenn Umgang mit Datums- und Zeitbereichen. Verwenden Sie stattdessen das folgende Formular:

WHERE col >= '20120101' AND col < '20120201'
Nach dem Login kopieren

Dieses Formular ist mit allen Datentypen und Genauigkeiten kompatibel, unabhängig vom Zeitteil.

Das obige ist der detaillierte Inhalt vonWie kann ich DATETIME- und DATE-Werte in SQL Server richtig vergleichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage