sql >> データベース >  >> RDS >> Sqlserver

MS SQL Serverの間に範囲の境界が含まれていますか?

    BETWEEN演算子は包括的です。

    Books Onlineから:

    BETWEENは、test_expressionの値がbegin_expressionの値以上で、end_expressionの値以下の場合にTRUEを返します。

    DateTimeの警告

    注意:DateTimesでは注意が必要です。日付のみが指定されている場合、値はその日の深夜の時点で取得されます。終了日の時間の欠落を回避するため、または複数の範囲で深夜に翌日のデータのキャプチャを繰り返すために、終了日は、日付の翌日の深夜の3ミリ秒前にする必要があります。これ未満の場合、値は翌日の深夜に切り上げられるため、3ミリ秒。

    例えば2016年6月以内にすべての値を取得するには、以下を実行する必要があります:

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

    つまり、

    where myDateTime between '20160601 00:00:00.000' and '20160630 23:59:59.997'

    datetime2およびdatetimeoffset

    日付から3ミリ秒を引くと、3ミリ秒のウィンドウから行が欠落する可能性があります。正しい解決策は最も単純なものでもあります:

    where myDateTime >= '20160601' AND myDateTime < '20160701'
    


    1. NULL値はデータベース検索のパフォーマンスにどのように影響しますか?

    2. オラクルのサブクエリとは

    3. Oracle Apps 11i/R12でFRDトレースを生成する方法

    4. Ubuntu 8.04でMySQLリレーショナルデータベースを使用する(Hardy)