首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP SQL Server日期范围和DateTime字段

ASP SQL Server日期范围和DateTime字段
EN

Stack Overflow用户
提问于 2012-07-27 19:37:26
回答 2查看 1.5K关注 0票数 1

我正在使用经典的ASP,并有以下VB脚本代码

代码语言:javascript
复制
From8to14 = date-14
To8to14 = date-8

这将设置两个变量。

对于今天来说,这意味着

代码语言:javascript
复制
From8to14 = "13/07/2012"
To8to14 = "19/07/2012"

然后对SQL server执行select查询,希望找到DateMatched列在这两个日期之间(包括这两个日期)的所有记录。

当我声明它时,在SQL中有两个条件;

代码语言:javascript
复制
"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“,则不包括该记录。

我怎么才能避免这个问题呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-27 20:16:16

尝尝这个。

代码语言:javascript
复制
"AND INTRAY.DateMatched >= dateadd(day, datediff(day, 0, getdate())-14, 0)" & _
"AND INTRAY.DateMatched < dateadd(day, datediff(day, 0, getdate())-7, 0)" & _
票数 1
EN

Stack Overflow用户

发布于 2012-07-27 20:11:18

变化

代码语言:javascript
复制
To8to14 = date-8 

代码语言:javascript
复制
To8to14 = date-7

然后从第14天的午夜到第7天的午夜,这将包括第8天的所有时间。

或者,如果您希望更精确,请保留To8to14不变,并将结尾更改为

代码语言:javascript
复制
... Day(To8to14) &" 23:59:59'

您还可以使用BETWEEN而不是>=和<=

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11686994

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档