我正在使用经典的ASP,并有以下VB脚本代码
From8to14 = date-14
To8to14 = date-8这将设置两个变量。
对于今天来说,这意味着
From8to14 = "13/07/2012"
To8to14 = "19/07/2012"然后对SQL server执行select查询,希望找到DateMatched列在这两个日期之间(包括这两个日期)的所有记录。
当我声明它时,在SQL中有两个条件;
"AND INTRAY.DateMatched >= '"& Year(From8to14) &"-"& Month(From8to14) &"-"& Day(From8to14) &"' " & _
"AND INTRAY.DateMatched <= '"& Year(To8to14) &"-"& Month(To8to14) &"-"& Day(To8to14) &"' " & _现在,这不能正常工作,因为除了日期之外,DateMatched列还包括时间,我认为服务器将这些日期解释为当天开始时的午夜?
因此,如果一条记录的DateMatched为"19/07/2012 17:41:22“,则不包括该记录。
我怎么才能避免这个问题呢?
发布于 2012-07-27 20:16:16
尝尝这个。
"AND INTRAY.DateMatched >= dateadd(day, datediff(day, 0, getdate())-14, 0)" & _
"AND INTRAY.DateMatched < dateadd(day, datediff(day, 0, getdate())-7, 0)" & _发布于 2012-07-27 20:11:18
变化
To8to14 = date-8 至
To8to14 = date-7然后从第14天的午夜到第7天的午夜,这将包括第8天的所有时间。
或者,如果您希望更精确,请保留To8to14不变,并将结尾更改为
... Day(To8to14) &" 23:59:59'您还可以使用BETWEEN而不是>=和<=
https://stackoverflow.com/questions/11686994
复制相似问题