注册 登录
编程论坛 ASP技术论坛

asp两个时间比较问题

lyuyyw 发布于 2007-08-17 08:39, 1354 次点击
我现在做得系统需要这样一个功能:数据库里面已经一个字段是我输入进去的,记录将来客户约见时间的时间段love_time 类型是常规日期,现在我需要实现查询几个小时内到期的约见订单 这几个小时是我手动输入 通过表单提交 然后通过对比系统现在的时间与订单里面时间的间隔 是否小于我提交的小时数来检索的记录 我用的是dateadd()函数 代码是这样的:
keyusertime=request("keyusertime")
keytime=dateadd("h",keyusertime,now())
If keyusertme<>"" Then
sql="select * from love where love_time< '%"&keytime&"%' order by love_time asc"
Else
sql="select * from love order by love_time asc"
End If

keyusername是我从表单传过来的小时数 love_time是数据库里面的记录约见时间的 这个语句错误:Microsoft JET Database Engine (0x80040E07)
标准表达式中数据类型不匹配。

请教高手是什么问题!!有更好的解决方法没有???
5 回复
#2
ayue2222007-08-17 09:27
keyusertime=request("keyusertime")
if IsDate(keyusertime) then keyusertime=FormatDateTime(keyusertime,0)
If keyusertme<>"" Then
sql="select * from love where DateDiff('h',love_time,keytime)<5 order by love_time asc" //假设是查询5个小时内
Else
sql="select * from love order by love_time asc"
End If
#3
lyuyyw2007-08-17 10:07

已经试过拉! 但是提取出来的是全部数据,麻烦楼上高手再看看程序啊
我看你语句select * from love where DateDiff('h',love_time,keytime)<5 order by love_time asc 这句:5不是手动设的 而是从表单接受的 (也就是你格式话的那个变量“keyusertime”) ;而且我想还是把括号里面的“keytime”改为"now()",应该是这样的吧,所以我改正后语句是:

select * from love where date('h',love_time,now())<'"keyusertime"' order by love_time asc

但是程序出错,好像是我变量引号加的不对??


#4
ayue2222007-08-17 10:15
select * from love where date("h",love_time,now())<keyusertime order by love_time asc ---------ACCESS数据库
select * from love where date(h,love_time,GetDate())<keyusertime order by love_time asc ----------SQL数据库
#5
lyuyyw2007-08-17 10:24
已经试过了 还是报错 快要疯了!!
只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录



麻烦了 大哥!!!
#6
lyuyyw2007-08-17 11:54

已经换过了,表单提交是数字 所以应该改成:
keytime=clng(request("keytime"))
if keytime<>"" then
sql="select * from love where datediff('h',now(),love_time)<keytime order by love_time asc"
else
sql="select * from love order by love_time asc"
end if


但是老出错 ,提示“至少一个参数没有被制定值”
是keytime没有传值成功 !!但是我测试了,keytime确定传值了,是什么问题???

1