| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦   
共有 333 人关注过本帖
标题:关于SQL时间字段查询
收藏  订阅  推荐  打印
cybin
Rank: 1
等级:新手上路
帖子:27
积分:402
注册:2008-8-21
关于SQL时间字段查询

我有一个表aa:
          id.   project ,endtime(时间字段)
          。。。 。。。  2008-9-20
我现在想查询当前时间跟字段里面的时间相差3天所有记录?
我用select * from aa where (getdate()-endtime=3)为什么会没有记录显示?
还有我用select *  from aa where endtime betweent getdate() and getdate()-3 也是没有记录显示?
我的语法是不是哪里出错?
有没有其他的sql语句。
2008-10-6 08:30
师妃暄
Rank: 12Rank: 12Rank: 12
等级:版主
帖子:756
积分:8302
威望:26
注册:2006-3-1

select * from aa where datediff(day,getdate(),endtime)=3

有实力才会有魅力 实力来自坚持不懈的努力
2008-10-6 08:47
cybin
Rank: 1
等级:新手上路
帖子:27
积分:402
注册:2008-8-21
回复 2# 师妃暄 的帖子

我刚才已经用这个语句试过了,显示了还是没有记录?
2008-10-6 09:30
师妃暄
Rank: 12Rank: 12Rank: 12
等级:版主
帖子:756
积分:8302
威望:26
注册:2006-3-1

那就不是语法错误.而是逻辑错误了

有实力才会有魅力 实力来自坚持不懈的努力
2008-10-6 09:31
cybin
Rank: 1
等级:新手上路
帖子:27
积分:402
注册:2008-8-21

什么叫逻辑错误?我听不懂,我是新手?
2008-10-6 09:34
cybin
Rank: 1
等级:新手上路
帖子:27
积分:402
注册:2008-8-21

还有一种情况:
select * from aa where getdate()-endtime=3 一个记录都不会显示。
可是用select * from aa where getdate()-endtme<=3就会显示记录?这是怎么回事?
有什么办法解决我上面的问题吗?谢谢大家?
2008-10-6 10:03
cybin
Rank: 1
等级:新手上路
帖子:27
积分:402
注册:2008-8-21
回复 2# 师妃暄 的帖子

我找出原因了。
语句为:
select * from aa where datediff(day,endtime,getdate())=3.
开始时间和结束时间颠倒了。
2008-10-6 10:11
师妃暄
Rank: 12Rank: 12Rank: 12
等级:版主
帖子:756
积分:8302
威望:26
注册:2006-3-1

这就是逻辑错误

恭喜你

有实力才会有魅力 实力来自坚持不懈的努力
2008-10-6 12:45
ghw111ghw
Rank: 1
等级:新手上路
帖子:30
积分:334
注册:2008-9-23

哈哈,师妃暄太有才了
2008-10-6 14:46
西风独自凉
Rank: 12Rank: 12Rank: 12
等级:版主
帖子:3195
积分:31420
威望:38
注册:2007-8-2


2008-10-6 16:09
共有 332 人关注过本帖
发新话题
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

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