ホームページ >データベース >mysql チュートリアル >MS SQL Server の「BETWEEN」演算子は包括的ですか、それとも排他的ですか?

MS SQL Server の「BETWEEN」演算子は包括的ですか、それとも排他的ですか?

DDD
DDDオリジナル
2024-12-27 21:41:14149ブラウズ

Is MS SQL Server's `BETWEEN` Operator Inclusive or Exclusive?

MS SQL Server の "BETWEEN" 演算子を使用した包含範囲の取得

MS SQL Server の "BETWEEN" 演算子を使用する場合は、次のことを理解することが重要です。範囲の境界は選択基準に含まれるか除外されます。

回答するには特定の質問では、「BETWEEN」演算子が含まれます。これは、デフォルトで、下限と上限として指定された値が結果セットに含まれることを意味します。提供された例では:

SELECT foo
FROM bar
WHERE foo BETWEEN 5 AND 10

クエリは、「foo」列の値が 5 から 10 まで (およびそれを含む) であるすべての行を選択します。

ただし、この包括的な動作はDateTimes を使用する場合は注意が必要です。デフォルトでは、日付のみが指定されている場合、SQL Server はその日付をその日の午前 0 時として扱います。これは、特定の日内のすべての値を取得する場合は、午前 0 時までの 3 ミリ秒以内にデータが欠落しないように、終了日から 3 ミリ秒を減算する必要があることを意味します。

たとえば、次の範囲内のすべての値を取得するには2016 年 6 月の場合、正しいクエリは次のようになります:

where myDateTime between '20160601' and DATEADD(millisecond, -3, '20160701')

これにより、2016 年 6 月内のすべての値 (範囲内に含まれる値を含む) が確実に取得されます。 6 月 30 日午前 0 時 3 ミリ秒前。

ほとんどのデータ型では「BETWEEN」演算子が含まれますが、例外もあることに注意することが重要です。たとえば、「datetime2」および「datetimeoffset」データ型では、一般に「>=」および「<」を使用することをお勧めします。潜在的な範囲の切り捨ての問題を回避するために、「BETWEEN」の代わりに演算子を使用します。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。