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

时间存在库里计算时间差出错

a190066 发布于 2010-06-28 19:47, 912 次点击
<%
mytime=rs("oldtime") '数据库中保存的一个过去时间
nowtime=now() '当前时间
if datediff("d",mytime,nowtime)<10 then
response.write "没到10天"
end if
if datediff("d",mytime,nowtime)>20 then
response.write "超过20天"
end if
%>
以上代码可正确计算时间差并显示结果,当设定的时间“10”和“20”分别存入到day1、day2时,以下代码不会计算,只会写入“没到“day1
”天”、就算oldtime与当前时间差超过day2,也是只显示“没到“day1”天”,根本没有计算。我是一个刚刚入门的爱好者,象刚学ABCD的英
语爱好者一样,请高手详细解答。写出正确完整的代码。谢谢!!

<%
day1=rs("day1")
day2=rs("day2")
mytime=rs("oldtime") '数据库中保存时间
nowtime=now() '当前时间
if datediff("d",mytime,nowtime)<day1 then response.write "没到"&day1&"天"
if datediff("d",mytime,nowtime)>day2 then response.write "超过"&day2&"天</b>"
%>
9 回复
#2
a1900662010-06-29 02:53
我在等高手答我。。等到我心都痛了。。。
#3
hams2010-06-29 09:06
先检查数据类型
#4
2010-06-29 10:11

先检查一下day1的数字有没有出错。。。

很可能day1并不等于10...
#5
a1900662010-06-29 12:14
回复 5楼 pnovus
电脑当前时间表是2010-6-28日,oldtime 设定是2010-6-20日,这个时间差小于day1,应显示应执行第一个条件;
当把oldtime 设为2010-5-18日,时间差是大于day2,应执行第二个条件,但无论如何修改oldtime、day1\day2.得出来的结果还是“10”,不会是“20”,当修改“day1”为15时,就显示“15”,说白了,只会显示“day1”,不会计算。(不会显示day2),是显示day1!

     请教高手解答我,谢谢
#6
hams2010-06-29 15:20
因为你的数据类型不对
#7
a1900662010-06-29 16:21
回复 7楼 hams
怎样不对能详细说说吗?我是新手,我要依靠你指路哟。。谢谢
#8
hams2010-06-30 11:54
我估计你写入的是字符类型

把你写入day1和day2这两项的命令贴一下就知道了
#9
a1900662010-06-30 14:19
一言惊醒梦中人,hams一句话犹如醍醐灌顶,让我茅塞顿开,恍然大悟。我把day1和day2数据修改为数字类型。问题解决了。谢谢 hams!!!!!
#10
hams2010-06-30 15:08
不是数字类型,是日期类型,你还是没搞明白。
1