如何在两个日期之间验证DATETIME

时间:2012-10-11 14:09:26

标签: sql validation datetime

我正在尝试检查优惠券在两个特定日期之间是否有效 我没有太多的SQL经验,但目前代码使用BETWEEN来尝试验证,我遇到的问题是endDate在前一天的午夜到期(例如{{1}评估到10/12/2012 00:00:00.000)的午夜,我需要它延长到10/11的午夜。
所以我想知道在结束日期追加/添加10/12是否是执行此评估的最佳方式?

目前正在使用:

23:59:59

2 个答案:

答案 0 :(得分:5)

不要使用BETWEEN来连续改变值。

你需要......

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

但您还需要在结束日期值中添加一天。在代码co.EndDate + 1或类似的)中,或在其自身的数据中。

例如,如果你想要2012年第一周的所有时间......

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'

答案 1 :(得分:-1)

如果是这种情况..向endDate添加+1将会...