一个访问数据库报错的问题:
nowt=now()
sql= "select * from Record where 时间 <# "&(nowt-30)& "# "
今天在我的xp sp2 的机子上测试错误提示为
[Microsoft][ODBC Microsoft Access Driver] 日期的语法错误 在查询表达式 '时间 <#2007-1-11 下午 10:40:33# ' 中。
后来用如下方法
nowt=replace(replace(now(), "下午 ", " "), "上午 ", " ") 过滤掉其中汉字
出现了错误 类型不匹配: 'nowt '
于是干脆把-30 去掉了,结果没报错,但是数据库中出现了:2007-2-10 上午 10:44:32 我突然想到此法会少到12小时……
可是把-30去掉后在我同学的机子上测试数据库里显示的出来数据时倒退了一个月。
于是上网搜到如下代码
Function checktime(thetime)
if IsDate(thetime) then
timeup=Cdate(thetime)
if instr(timeup, "上午 ") then
timehour=hour(timeup)
checktime = year(timeup)+ "- "+month(timeup)+ "- "+day(timeup)+ " "+timehour+ "- "+minute(timeup)+ "- "+second(timeup)
elseif instr(timeup, "下午 ") then
timehour=hour(timeup)+12
checktime = year(timeup)+ "- "+month(timeup)+ "- "+day(timeup)+ " "+timehour+ "- "+minute
(timeup)+ "- "+second(timeup)
else
checktime = timeup
end if
else
response.write( "时间格式有误 ")
end if
End Function
在我机子上又加了-30进行测试调用代码后得出错误:类型不匹配: '[string: "- "] '
此时在我同学机子上通过了,为什么? 和同学用QQ联系讨论的,他机子是番茄XP SP2……
郁闷啊!
先前 用我电脑response.Write(now) 得出是这种格式2007-2-10 下午 10:58:17
而他的是没有汉字说明的 24小时格式,而后我们就考虑到了区域设置问题。
但是用 checktime函数我却无法通过,怎么回事?
高手救我^-^ 第一次问问题,情况就是这样的,不知道说清
------解决方案--------------------
时间设置的问题,看你时间是怎么设置的
------解决方案--------------------
nowt=now()
sql= "select * from Record where 时间 <# "&formatetime(dateadd( 'd ',-30,nowt),2)& "# "