Gelten Grenzwerte für den „between“-Operator von MS SQL Server?
Der „between“-Operator in MS SQL Server ist inklusive, as definiert in Books Online. Dies bedeutet, dass Werte, die größer oder gleich der Untergrenze („begin_expression“) und kleiner oder gleich der Obergrenze („end_expression“) sind, in die Ergebnismenge aufgenommen werden.
Zum Beispiel Folgendes Die Abfrage wählt alle Zeilen aus, in denen die Spalte „foo“ Werte zwischen 5 und 10 enthält, einschließlich:
SELECT foo FROM bar WHERE foo BETWEEN 5 AND 10
DateTime Überlegungen
Beim Arbeiten mit DateTime-Werten ist es wichtig zu beachten, dass beim „Dazwischen“-Vergleich nur der Datumsanteil berücksichtigt wird. Um genaue Ergebnisse sicherzustellen, müssen Sie für das Enddatum eine Zeitkomponente angeben, die 3 Millisekunden vor Mitternacht liegt. Dies verhindert Datenverluste oder Duplikate für Werte, die in den Enddatumsbereich fallen.
Um beispielsweise alle Zeilen abzurufen, in denen die Spalte „myDateTime“ Werte im Juni 2016 enthält, würden Sie die folgende Abfrage verwenden:
WHERE myDateTime BETWEEN '20160601' AND DATEADD(millisecond, -3, '20160701')
Datetime2- und Datetimeoffset-Operationen
Anstatt zu subtrahieren 3 Millisekunden beträgt, wird empfohlen, bei der Arbeit mit den Datentypen datetime2 oder datetimeoffset den folgenden einfacheren und genaueren Ansatz zu verwenden:
WHERE myDateTime >= '20160601' AND myDateTime < '20160701'
Das obige ist der detaillierte Inhalt vonEnthält der „BETWEEN'-Operator von MS SQL Server Grenzwerte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!