ホームページ > データベース > mysql チュートリアル > MS SQL Serverの「BETWEEN」演算子には境界値が含まれますか?

MS SQL Serverの「BETWEEN」演算子には境界値が含まれますか?

Patricia Arquette
リリース: 2025-01-01 03:50:10
オリジナル
752 人が閲覧しました

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

MS SQL Server の "BETWEEN" 演算子の包括的な性質

MS SQL Server の BETWEEN 演算子には範囲境界が含まれますか?つまり、次のクエリ:

SELECT foo
FROM bar
WHERE foo BETWEEN 5 AND 10
ログイン後にコピー

は正確に 5 と 10 の値を選択しますか、それともこれらの値は範囲から除外されますか?

答え:

MS SQL Server の BETWEEN 演算子は包括的です。つまり、指定された値の開始値と終了値の両方が含まれます。 範囲。したがって、上記のクエリは、foo 列の値が 5 から 10 までの行を選択します。

Books Online より:

BETWEEN は、次の値が存在する場合に TRUE を返します。 test_expression は begin_expression の値以上、かつ begin_expression の値以下です。 end_expression.

DateTime の注意事項:

DateTime を使用する場合、日付のみが指定された場合、値はその日の午前 0 時として扱われることに注意することが重要です。終了日内の時刻の欠落や、翌日のデータのデータ キャプチャの重複を避けるために、終了日から 3 ミリ秒を減算することをお勧めします。これは、3 ミリ秒未満の値は翌日の午前 0 時に切り上げられるためです。

例:

2016 年 6 月内のすべての値を取得するには、次のコマンドを使用します。クエリ:

where myDateTime between '20160601' and DATEADD(millisecond, -3, '20160701')
ログイン後にコピー

これは翻訳されますto:

where myDateTime between '20160601 00:00:00.000' and '20160630 23:59:59.997'
ログイン後にコピー

datetime2 および datetimeoffset:

日付から 3 ミリ秒を減算すると、3 ミリ秒ウィンドウで行が失われる可能性があります。最も効果的な解決策は、次の演算子を使用することです:

where myDateTime >= '20160601' AND myDateTime < '20160701'
ログイン後にコピー

以上がMS SQL Serverの「BETWEEN」演算子には境界値が含まれますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート