| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1709 人关注过本帖
标题:时间比较出错
只看楼主 加入收藏
xiongjl9555
Rank: 2
来 自:深圳南山区
等 级:论坛游民
帖 子:124
专家分:10
注 册:2008-5-27
结帖率:57.14%
收藏
 问题点数:0 回复次数:13 
时间比较出错
我在取时间段时发现一个问题,

datetim1="2008-8-6 0:00:00"
datetim2="2008-8-9 23:59:59"
上述两个字符是在另一个页面
dim date_tim1,date_tim2
date_tim1=CDate(request("datetim1"))
date_tim2=CDate(request("datetim2"))
if Datediff("s",date_tim1,date_tim2)>0 then
sql="select * from Adress where 加入时间> #"&date_tim1&"# and 加入时间< #"&date_tim1&"# "
end if
可是如果加入时间是 "2008-8-7 0:00:00"符合上述条件,数据就可以取出来,经过测试若datetim2="2008-8-10 23:59:59",加入时间是 "2008-8-7 0:00:00"时,数据就读不出来了,不知为何????
说明:加入时间是文本型的
请大家帮忙,谢谢
搜索更多相关主题的帖子: date 时间 CDate request 数据 
2008-08-16 18:01
anlige
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:401
专家分:0
注 册:2006-11-3
收藏
得分:0 
文本型和时间型比较?????
加入时间> #"&date_tim1&"# and 加入时间< #"&date_tim1&"# "
怎么两个都是date_tim1

http://www.
zhanghuiguoanlige@
2008-08-16 22:40
xiongjl9555
Rank: 2
来 自:深圳南山区
等 级:论坛游民
帖 子:124
专家分:10
注 册:2008-5-27
收藏
得分:0 
对不起,我写错了,第二个应该是Date_tim2,可我之前的测试和统计怎么都是对的呢?如是文本型的怎么比较呢?
2008-08-16 23:45
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
收藏
得分:0 
sql="select * from Adress where 加入时间 between #"&date_tim1&"# and  #"&date_tim1&"# "
2008-08-17 10:44
xiongjl9555
Rank: 2
来 自:深圳南山区
等 级:论坛游民
帖 子:124
专家分:10
注 册:2008-5-27
收藏
得分:0 
时间比较出错
Datediff("d",date_tim1,date_tim2)>0
这里date_tim1和date_tim2是否都必须是日期型的,可是我作了以下测试,觉得不对。
date_tim1="2008-8-18 0:00:00"
date_tim2=Now
Dateadiff="距今天的天數:" & DateDiff("d", Now, theDate)
response.write Dateadiff
在这里你说date_tim1是什么类型的???
2008-08-21 09:41
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
收藏
得分:0 
sql="select * from Adress where 加入时间> #"&date_tim1&"# and 加入时间< #"&date_tim1&"# "
在SQL里时间变量不能直接用>或<进行比较大小,因为字符串是没办法比较大小的。
而between就可以在SQL里取出两个时间段之间的数据。
2008-08-21 10:26
hahatuzi2000
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2008-7-25
收藏
得分:0 
我试试看啊
datetim1="2008-8-6 0:00:00"
datetim2="2008-8-9 23:59:59"
上述两个字符是在另一个页面
dim date1,date2,time1,time2
date1=datevalue(datetim1)
date2=datevalue(datetim2)
time1=timevalue(datetim1)
time2=timevalue(datetim2)
if datediff("d",date1,date2)>=0 then
   if datediff("s",time1,time2)>0 then
sql="select * from Adress where 加入时间> #"&date_tim1&"# and 加入时间< #"&date_tim1&"# "
   end if
end if

试一试,有问题再说.
2008-08-21 10:34
xiongjl9555
Rank: 2
来 自:深圳南山区
等 级:论坛游民
帖 子:124
专家分:10
注 册:2008-5-27
收藏
得分:0 
回复 6# yms123 的帖子
谢谢,我试试再说,再次表示感谢,我试了,因为我的加入时间是文本型的,所以按照你说的用Between,那么两时间段也应该用文本型的吧?可只有日期型的才加# #吧?所以我不知怎么些?

[[it] 本帖最后由 xiongjl9555 于 2008-8-24 16:16 编辑 [/it]]
2008-08-24 15:58
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
收藏
得分:0 
[bo][un]xiongjl9555[/un] 在 2008-8-24 15:58 的发言:[/bo]

谢谢,我试试再说,再次表示感谢,我试了,因为我的加入时间是文本型的,所以按照你说的用Between,那么两时间段也应该用文本型的吧?可只有日期型的才加# #吧?所以我不知怎么些?

sql="select * from Adress where 加入时间 between #"&date_tim1&"# and  #"&date_tim1&"# "
2008-08-24 18:50
xiongjl9555
Rank: 2
来 自:深圳南山区
等 级:论坛游民
帖 子:124
专家分:10
注 册:2008-5-27
收藏
得分:0 
还是错误
我将SQL语句改写后读取数据出错,且错的离谱,不仅"2008-8-7"数据没读出来,而且还取出了其他不属于该区间的数据,不知为何???另外字符串肯定可以比较大小,不是经常有排序的问题吗?可其比较的机理是什么呢??谢谢
2008-08-25 00:07
快速回复:时间比较出错
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012610 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved