2

指定された2つの日付の間にクーポンが有効かどうかを確認しようとしています。
私はSQLの経験があまりありませんが、現在コードはBETWEEN検証を試みるために使用しています。私が直面している問題はendDate、前日の深夜に期限切れになり(たとえば、の深夜まで10/12/2012 00:00:00.000評価される10/11)、それを拡張する必要があることです。の真夜中10/12。それで、終了日への追加/追加がこの評価を実行するための最良の方法である
かどうか疑問に思っていますか?23:59:59

現在使用中:

ca.CreateDate between co.StartDate and co.EndDate 
4

2 に答える 2

5

BETWEEN連続的に変化する値には使用しないでください。

あなたが必要です...

    ca.CreateDate >= co.StartDate
AND ca.CreateDate <  co.EndDate

ただし、終了日の値に1日を追加する必要もあります。コードco.EndDate + 1または同様のもの)、またはデータ自体のいずれか。

たとえば、2012年の第1週を常に必要とする場合は...

WHERE
      theDateTime >= '01 Jan 2012'
  AND theDateTime <  '08 Jan 2012'

これは、他のレベルの粒度にも当てはまります。

-- First 12 hours of the day
WHERE
      theDateTime >= '01 Jan 2012 00:00'
  AND theDateTime <  '01 Jan 2012 12:00'

-- All of Jan
WHERE
      theDateTime >= '01 Jan 2012'
  AND theDateTime <  '01 Feb 2012'
于 2012-10-11T14:12:24.850 に答える
-1

その場合..endDateに+1を追加すると..

于 2012-10-11T14:13:45.353 に答える