Heim > Datenbank > MySQL-Tutorial > Enthält der „BETWEEN'-Operator von MS SQL Server die Grenzwerte?

Enthält der „BETWEEN'-Operator von MS SQL Server die Grenzwerte?

Patricia Arquette
Freigeben: 2025-01-01 03:50:10
Original
734 Leute haben es durchsucht

Does MS SQL Server's `BETWEEN` Operator Include the Boundary Values?

Inklusivität des „BETWEEN“-Operators von MS SQL Server

Beinhaltet der BETWEEN-Operator von MS SQL Server die Bereichsgrenzen? Mit anderen Worten: Funktioniert die folgende Abfrage:

SELECT foo
FROM bar
WHERE foo BETWEEN 5 AND 10
Nach dem Login kopieren

Werte auswählen, die genau 5 und 10 sind, oder werden diese Werte aus dem Bereich ausgeschlossen?

Antwort:

Der BETWEEN-Operator in MS SQL Server ist inklusiv, was bedeutet, dass er sowohl den Start- als auch den Endwert im angegebenen Bereich umfasst. Daher wählt die obige Abfrage Zeilen aus, in denen die foo-Spalte Werte zwischen 5 und 10 enthält.

Aus Books Online:

BETWEEN gibt TRUE zurück, wenn der Wert von test_expression ist größer oder gleich dem Wert von begin_expression und kleiner oder gleich dem Wert von end_expression.

DateTime-Vorbehalt:

Bei der Arbeit mit DateTimes ist es wichtig zu beachten, dass der Wert als Mitternacht an diesem Tag behandelt wird, wenn nur ein Datum angegeben wird. Um zu vermeiden, dass Zeiten innerhalb des Enddatums fehlen oder die Datenerfassung für die Daten des folgenden Tages doppelt erfolgt, wird empfohlen, 3 Millisekunden vom Enddatum abzuziehen. Dies liegt daran, dass jeder Wert, der weniger als 3 Millisekunden beträgt, auf Mitternacht des nächsten Tages aufgerundet wird.

Beispiel:

Um alle Werte innerhalb von Juni 2016 zu erhalten, verwenden Sie Folgendes Abfrage:

where myDateTime between '20160601' and DATEADD(millisecond, -3, '20160701')
Nach dem Login kopieren

Dies wird übersetzt zu:

where myDateTime between '20160601 00:00:00.000' and '20160630 23:59:59.997'
Nach dem Login kopieren

datetime2 und datetimeoffset:

Das Subtrahieren von 3 ms von einem Datum kann dazu führen, dass Zeilen im 3-ms-Fenster fehlen. Die effektivste Lösung ist die Verwendung der folgenden Operatoren:

where myDateTime >= '20160601' AND myDateTime < '20160701'
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonEnthält der „BETWEEN'-Operator von MS SQL Server die Grenzwerte?. 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