asp+access中,SQL分段查询问题,大家帮忙看一下为什么会没有结果?

pazll 2003-08-22 03:04:39
我记得CSDN上面有人问过这样的问题的,我也仔细看过那个帖子。但是,我按照上面的办法,还是不是我所要的结果
我要实现的是:由一个页面输入两个日期,一个开始日期用文本框(start_date)截止日期(end_date),然后查询在
这两个日期间的所有记录。
当然,我有规定查询时文本框的输入格式为yyyy-mm-dd或者yyyy.mm.dd(我用一个函数将它转换成日期格式)并且
有控制格式不对时alert出错信息!所以,start_date和end-date变量不会出错!
我的查询语句是这样写的:
sql="select * from wform where form_name='"&tb&"' and form_date between "&cdate(start_date)&" and "&cdate(end_date)
然后用rs.open 方法打开。
这样做,不会出现错误,但是,却得不到我想要查询的结果。
我的数据库里面有n条在start-date到end_date之间的记录,但是最后出现的结果是没有记录!
当然这之前我还用过很多种查询办法,如 where form_date > "&cdate(start_date) 这样不可以,可以查询出结果
但是加了后面的 and form_date < "&cdate(end_date)之后也就是sql成了"select * from wform where form_name='"&tb&"' and
from_date > "&start_date&" and form_date < "&end_date 之后,就再也查寻不到任何结果,和上面用between一样。。。
不知道,我哪里出错了。请大家帮帮忙,解决一下。还有没有更好的查询办法。。我试过用datediff函数。也是那样的结果。。
where datediff('d',form_date,'"&start_date&"')<0 and datediff('d',form_date,'"&end_date&"')<0 也是没有结果。。
我知道,我肯定是在查询的问题上有某个地方存在一个严重的未知或误解才会出现如此迷茫和无奈,请大家帮忙写出正确的查询语句后,并帮忙教学一下
我目前存在的误区,小D不甚感激!!哦,对了,我忘了写我的运行环境了(:)刚才才看了flashroom的新人提问技巧这篇文章的,所以要做一个
专业点的提问者)是:WIN2KPRO+IIS5.0+ASP+ACCESS,
这是偶在这里的第一次提问,以后偶还会有提问的,大家多多照顾咯!~~~感谢!!!
...全文
60 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
pazll 2003-08-22
  • 打赏
  • 举报
回复
晕了,我忘记密码了,等会啊,我去找密码回来给大家发分!~
pazll 2003-08-22
  • 打赏
  • 举报
回复
哦,该给分了,怎么给呢,还没给过呢?呵呵。我试试看啊!~
pazll 2003-08-22
  • 打赏
  • 举报
回复
好了,问题解决了!你们说的都对,你们都是高手!~
偶知道问题原因了,就是日期型字符间比较大小的时候需要用加#号。。
恩,又学到点东西。。谢谢大家。。
不过,defore(MiLo.MoonLow)朋友的做法是不行的。。你应该自己去试试就知道了!
hzqq 2003-08-22
  • 打赏
  • 举报
回复
access与sql server不同
要用##表示日期
而且好像没有datediff函数
只能用between
defore 2003-08-22
  • 打赏
  • 举报
回复
sql="select * from wform where form_name='"&tb&"' and form_date between '"&cdate(start_date)&"' and '"&cdate(end_date)&"'"

试试呢
bananasmiling 2003-08-22
  • 打赏
  • 举报
回复
sql="select * from wform where form_name='"&tb&"' and form_date between #"&cdate(start_date)&"# and #"&cdate(end_date)&"#"
where datediff('d',form_date,'"&start_date&"')>0 and datediff('d',form_date,'"&end_date&"')<0
ttt2 2003-08-22
  • 打赏
  • 举报
回复
sql="select * from wform where form_name='"&tb&"' and form_date between #"&cdate(start_date)&"# and #"&cdate(end_date)&"#"
coffee_cn 2003-08-22
  • 打赏
  • 举报
回复
where datediff('d',form_date,'"&start_date&"')>0 and datediff('d',form_date,'"&end_date&"')<0

应该是一个大于0,一个小于0吧

response.write datediff('d','2002-08-01','2002-08-01')
response.write datediff('d','2002-08-01','2002-07-01')
response.write datediff('d','2002-08-01','2002-09-01')

看看结果都是多少
lions911 2003-08-22
  • 打赏
  • 举报
回复
确定你的字段是日期时间型

ACCESS里面,日期两边要加#2000-09-09#

28,391

社区成员

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

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