MS SQL Server の "Between" 演算子には範囲境界が含まれますか?
MS SQL Server の BETWEEN 演算子は、その名前が示すように、以下をチェックします。指定された式が指定された範囲内にあるかどうか。ただし、よくある疑問が生じます: この範囲には境界値が含まれますか、それとも除外されますか?
その答えは、BETWEEN は包含演算子であり、範囲の下限と上限の両方が含まれることを意味します。明確に説明すると、
SELECT foo FROM bar WHERE foo BETWEEN 5 AND 10
このクエリは、foo が >= 5 および
BETWEEN は、test_expression の値が begin_expression の値以上、end_expression の値以下の場合に TRUE を返します。
DateTime の注意事項
DateTime 値については、微妙な考慮事項があります。覚えておいてください。日付のみを指定した場合は、その日の午前0時と解釈されます。時間値の欠落や重複を避けるために、終了日の午前 0 時前の 3 ミリ秒を除く範囲を使用することをお勧めします。
たとえば、2016 年 6 月内のすべての DateTime 値を取得するには:
WHERE myDateTime BETWEEN '20160601' AND DATEADD(millisecond, -3, '20160701')
これにより、7 月の値が含まれることなく、範囲が月末まで拡張されます。 1 番目。
datetime2 と datetimeoffset
これらのデータ型では、>= と < を使用する方が安全です。 BETWEEN の代わりに演算子を使用します。例:
WHERE myDateTime >= '20160601' AND myDateTime < '20160701'以上がSQL Server の「BETWEEN」演算子には開始値と終了値が含まれますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。