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