| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付买域名,送MP3、MP4
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY买空间,免费送域名(厦门中资源)
共有 552 人关注过本帖
标题:时间比较出错
收藏  订阅  推荐  打印 
xiongjl9555
Rank: 2
来自:深圳南山区
等级:注册会员
帖子:83
积分:1072
注册:2008-5-27
时间比较出错

我在取时间段时发现一个问题,

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-8-16 18:01
anlige
Rank: 3Rank: 3
等级:中级会员
威望:2
帖子:221
积分:2412
注册:2006-11-3

文本型和时间型比较?????
加入时间> #"&date_tim1&"# and 加入时间< #"&date_tim1&"# "
怎么两个都是date_tim1

http://www.ii-home.cn/
zhanghuiguoanlige@126.com
2008-8-16 22:40
xiongjl9555
Rank: 2
来自:深圳南山区
等级:注册会员
帖子:83
积分:1072
注册:2008-5-27

对不起,我写错了,第二个应该是Date_tim2,可我之前的测试和统计怎么都是对的呢?如是文本型的怎么比较呢?
2008-8-16 23:45
yms123
Rank: 12Rank: 12Rank: 12
等级:版主
威望:72
帖子:8035
积分:81956
注册:2004-7-17

sql="select * from Adress where 加入时间 between #"&date_tim1&"# and  #"&date_tim1&"# "

http://www.lxzhcn.net
临时域名:http://yms126.1.suhai.com.cn/
版块版主招募中
网站论坛发帖无问题,欢迎发帖。
2008-8-17 10:44
xiongjl9555
Rank: 2
来自:深圳南山区
等级:注册会员
帖子:83
积分:1072
注册:2008-5-27
时间比较出错

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-8-21 09:41
yms123
Rank: 12Rank: 12Rank: 12
等级:版主
威望:72
帖子:8035
积分:81956
注册:2004-7-17

sql="select * from Adress where 加入时间> #"&date_tim1&"# and 加入时间< #"&date_tim1&"# "
在SQL里时间变量不能直接用>或<进行比较大小,因为字符串是没办法比较大小的。
而between就可以在SQL里取出两个时间段之间的数据。

http://www.lxzhcn.net
临时域名:http://yms126.1.suhai.com.cn/
版块版主招募中
网站论坛发帖无问题,欢迎发帖。
2008-8-21 10:26
hahatuzi2000
Rank: 1
等级:新手上路
帖子:39
积分:494
注册:2008-7-25
我试试看啊

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-8-21 10:34
xiongjl9555
Rank: 2
来自:深圳南山区
等级:注册会员
帖子:83
积分:1072
注册:2008-5-27
回复 6# yms123 的帖子

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

[ 本帖最后由 xiongjl9555 于 2008-8-24 16:16 编辑 ]
2008-8-24 15:58
yms123
Rank: 12Rank: 12Rank: 12
等级:版主
威望:72
帖子:8035
积分:81956
注册:2004-7-17

xiongjl9555 在 2008-8-24 15:58 的发言:

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

http://www.lxzhcn.net
临时域名:http://yms126.1.suhai.com.cn/
版块版主招募中
网站论坛发帖无问题,欢迎发帖。
2008-8-24 18:50
xiongjl9555
Rank: 2
来自:深圳南山区
等级:注册会员
帖子:83
积分:1072
注册:2008-5-27
还是错误

我将SQL语句改写后读取数据出错,且错的离谱,不仅"2008-8-7"数据没读出来,而且还取出了其他不属于该区间的数据,不知为何???另外字符串肯定可以比较大小,不是经常有排序的问题吗?可其比较的机理是什么呢??谢谢
2008-8-25 00:07
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.052854 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved