asp如何根据时间段查询?

sky0230 2010-01-15 02:42:11
我现在这样写的
if len(Request.QueryString("fdate21")) > 0 and len(Request.QueryString("fdate22")) > 0 then 
sql = sql & "and between #"&fdate21&"# and #"&fdate22&"# "
end if


不知道哪有问题就是查不出数据。拜托各位帮忙看看!
...全文
467 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
sky0230 2010-01-18
  • 打赏
  • 举报
回复
[Quote=引用 29 楼 yan11cn 的回复:]
忘了 那是变量。。
if len(Request.QueryString("fdate21")) > 0 and len(Request.QueryString("fdate22")) > 0 then
sql = sql & "and DateDiff(""d"",#" & fdate21 & "#,fdate1)>=0 and DateDiff(""d"",fdate1,#" &fdate22 & "#)>=0"
end if
这样试试
[/Quote]OK,搞定!谢谢!
yan11cn 2010-01-18
  • 打赏
  • 举报
回复
忘了 那是变量。。
if len(Request.QueryString("fdate21")) > 0 and len(Request.QueryString("fdate22")) > 0 then
sql = sql & "and DateDiff(""d"",#" & fdate21 & "#,fdate1)>=0 and DateDiff(""d"",fdate1,#" &fdate22 & "#)>=0"
end if
这样试试
sky0230 2010-01-18
  • 打赏
  • 举报
回复
[Quote=引用 27 楼 yan11cn 的回复:]
if len(Request.QueryString("fdate21")) > 0 and len(Request.QueryString("fdate22")) > 0 then
sql = sql & "and DateDiff("d",fdate21,fdate1)>=0 and DateDiff('d',fdate1,fdate22)>=0"
end if
[/Quote]
提示错误:

Microsoft VBScript 编译器错误 错误 '800a0401'

语句未结束

/myfiles.asp,行 80

sql = sql & "and DateDiff("d",fdate21,fdate1)>=0 and DateDiff('d',fdate1,fdate22)>=0"
---------------------------^

yan11cn 2010-01-18
  • 打赏
  • 举报
回复
if len(Request.QueryString("fdate21")) > 0 and len(Request.QueryString("fdate22")) > 0 then
sql = sql & "and DateDiff("d",fdate21,fdate1)>=0 and DateDiff('d',fdate1,fdate22)>=0"
end if
xiangziyanhuang 2010-01-18
  • 打赏
  • 举报
回复
<%# Convert.ToDateTime(Eval("FBSJ")).AddDays(2)>DateTime.Today>这样去判断吧
zhousq00 2010-01-18
  • 打赏
  • 举报
回复
既然知道是语句问题
把语句打出来(response.write)
执行一下就知道是什么问题了!
sky0230 2010-01-18
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 yan11cn 的回复:]
你百度下看看函数定义就知道了
拿时间字段与上界和下界分别比较一次就行了
[/Quote]
if len(Request.QueryString("fdate21")) > 0 and len(Request.QueryString("fdate22")) > 0 then 
sql = sql & "and fdate1 DateDiff('d',fdate21,fdate22)"
end if

这样写是不是有问题!没用过不会啊!
yan11cn 2010-01-18
  • 打赏
  • 举报
回复
你百度下看看函数定义就知道了
拿时间字段与上界和下界分别比较一次就行了
sky0230 2010-01-18
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 yan11cn 的回复:]

恩 最好用datediff()函数返回值来作条件
between and 是取下界不取上届的 即  fdate21 <=time <fdate22
[/Quote]用datediff()应该怎么做啊?
yan11cn 2010-01-18
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 sky0230 的回复:]
VB codeiflen(Request.QueryString("fdate21"))>0andlen(Request.QueryString("fdate22"))>0then
sql= sql&"and time between #"&fdate21&"# and #"&fdate22&"#"endif
可以查出数据了!
但是发现开始时间和结束时间都是同一天还是查不出数据。
[/Quote]

恩 最好用datediff()函数返回值来作条件
between and 是取下界不取上届的 即 fdate21<=time<fdate22
sky0230 2010-01-18
  • 打赏
  • 举报
回复
if len(Request.QueryString("fdate21")) > 0 and len(Request.QueryString("fdate22")) > 0 then 
sql = sql & "and time between #"&fdate21&"# and #"&fdate22&"# "
end if

可以查出数据了!
但是发现开始时间和结束时间都是同一天还是查不出数据。
loveljc82 2010-01-16
  • 打赏
  • 举报
回复
这个问题不会啊!
stella19891231 2010-01-16
  • 打赏
  • 举报
回复
你有没有试下把你写的sql语句先放在数据库中能否查出数据呢?
chinank 2010-01-16
  • 打赏
  • 举报
回复
缺少字段名
plcc123 2010-01-16
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 sky0230 的回复:]
SQL打印出来看??  什么意思?
[/Quote]

response.write sql '就是打印
bopirate 2010-01-16
  • 打赏
  • 举报
回复
response.write sql
response.end

看看完整的sql语句再说。
qiufengwuqing 2010-01-16
  • 打赏
  • 举报
回复
"and between #"&fdate21&"# and #"&fdate22&"# "
你没指明列名,比如:
"and riqi between #"&fdate21&"# and #"&fdate22&"# "

qwertt12345 2010-01-15
  • 打赏
  • 举报
回复
这个问题不错 但是不知道
sky0230 2010-01-15
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 yan11cn 的回复:]
你的字段名不会也是time吧? 要是保留字就得加[time]
[/Quote]我肯定不是加的time
jiewenxu 2010-01-15
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 sky0230 的回复:]
我这样写的response.write "and between #"&fdate21&"# and #"&fdate22&"# "
选择的时间是2010-01-01至2010-01-15
出来的结果and between #2010-01-01# and #2010-01-15#
[/Quote]

我是叫你把
sql = sql & "and between #"&fdate21&"# and #"&fdate22&"# "
这步执行后的SQL整句打印出来。还有,报出错误描述
你这里是明显漏了字段名称
加载更多回复(10)

28,390

社区成员

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

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