~~日期时间的查询问题?

shengjilong 2006-07-13 07:22:23
select * from LR where SJ>=#2006-7-1# and SJ<=#2006-7-13#
为什么13号(数据里有这天的数据)这天的数据查询不到?好象“SJ<=#2006-7-13#”中的“=”为什么不起作用?
...全文
200 7 打赏 收藏 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
foam223 2006-07-14
  • 打赏
  • 举报
回复
如楼上所说的
starsword 2006-07-14
  • 打赏
  • 举报
回复
是啊,我也喜欢用datediff,清晰明了~,嘿嘿~~~
若白师妹 2006-07-14
  • 打赏
  • 举报
回复
datediff最喜欢
starsword 2006-07-14
  • 打赏
  • 举报
回复
如果你要用>=、<=、BETWEEN这种方式对日期数据做判断,需要注意

“2006-7-13 0:00:01”是大于“2006-7-13”的,所以你用 <= 2006-7-13是找不到13号这天的数据的!

所以,你必须用 <= 2006-7-14来查出包含13号及之前的数据,那么怎么得到2006-7-14这个日期呢?

EndTime = "2006-7-13"
EEndTime = dateadd("d",1,EndTime)

那么 EEndTime 就是“2006-7-14”,dateadd函数是会自动判断日期的,所以如果EndTime是2006-7-31,EEndTime也可以得到2006-8-1的

楼主抓紧结帖给分吧~
shengjilong 2006-07-14
  • 打赏
  • 举报
回复
谢谢
用SJ<#2006-7-14#可是可以,不过“2006-7-14”需要用的是日期变量,如果要查的是“2006-7-31”那又怎么办呢?用“2006-7-32”那么日期变量也就不正确了。
BETWEEN 的执行效率比两次判断高得多,最先我也是这么想的,不过用这个方法我没有查到所数据,所以我就用了两次判断,BETWEEN也不知道为什么不行!
八哥 2006-07-14
  • 打赏
  • 举报
回复
select * from LR where SJ BETWEEN #2006-7-1# and #2006-7-13#

BETWEEN 的执行效率比两次判断高得多
RockyCoder 2006-07-13
  • 打赏
  • 举报
回复
那么你就用SJ<#2006-7-14#试试看啦^_^

28,402

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧