• 主页
  • 基础类
  • 应用实例
  • 新技术前沿

关于sql的比较时间(datetime)大小

jojoova 2010-08-27 08:09:34
我用date1 > getdate(),这样直接比较,是不是不行,有些明明满足条件的数据愣是没检索出来
...全文
10815 1 收藏 18
写回复
18 条回复
super1021love 2010年08月27日
使用convert转换函数、先把两个时间转换成Data类型的即2010-08-27,然后在比较就好了
回复 点赞
GOODlivelife 2010年08月27日
[Quote=引用 8 楼 jojoova 的回复:]
啊,是我自己疏忽了,有几条是2008年的,昨天我把自己电脑的时间改成2008年了
[/Quote]还好发现了问题,呵呵,恭喜楼主!
回复 点赞
hao1hao2hao3 2010年08月27日
[Quote=引用 8 楼 jojoova 的回复:]
啊,是我自己疏忽了,有几条是2008年的,昨天我把自己电脑的时间改成2008年了
[/Quote]



那就是说问题解决了?

回复 点赞
王向飞 2010年08月27日
SELECT * FROM [TB] where cxsj >GETDATE() 这么写是对的啊。。
回复 点赞
jojoova 2010年08月27日
啊,是我自己疏忽了,有几条是2008年的,昨天我把自己电脑的时间改成2008年了
回复 点赞
用时间比较大小,进入毫秒级别时就有误差了。所以如果你的时间记录到了毫秒级别,就不推荐用了。
回复 点赞
jojoova 2010年08月27日
cxsj(datetime)
2010-9-1 16:17:46
2010-8-3 16:18:14
2010-9-5 16:19:32
2008-8-30 16:54:31
2008-8-30 16:55:38
2008-8-30 08:26:37
2008-8-30 08:34:15
然后我用cxsj>getdate(),只查询出下面两条数据
cxsj
2010-9-1 16:17:46
2010-9-5 16:19:32
回复 点赞
用DateDiff
回复 点赞
就是just4 2010年08月27日
DECLARE @date1 DATETIME

SET @date1 = CAST('2010-01-01' AS DATETIME)

IF @date1 > GETDATE() SELECT '>'
ELSE SELECT '<='
回复 点赞
王向飞 2010年08月27日
看看你的数据,给点测试数据
回复 点赞
jojoova 2010年08月27日
date1是一个datetime类型的变量,算我疏忽,没说清楚
回复 点赞
s_111111 2010年08月27日
date1 是什麼數據類型?
回复 点赞
samyou 2010年08月27日
嗯,细心发现问题
回复 点赞
jamk 2010年08月27日
学习了
回复 点赞
cjfriends 2010年08月27日
恭喜楼主,学习了
回复 点赞
look_007 2010年08月27日
[Quote=引用 14 楼 look_007 的回复:]
SQL code
DECLARE @date1 DATETIME
select @date1 = '20100826'
if @date1>=convert(char(10),getdate,102)
print '[日期大于或就今日''
else
print '日期小于或就今日'
[/Quote]
更正一下
DECLARE @date1 DATETIME
select @date1 = '20100826'
if @date1>=convert(char(10),getdate(),102)
print '[日期大于或就今日'
else
print '日期小于今日'
回复 点赞
look_007 2010年08月27日
DECLARE @date1 DATETIME
select @date1 = '20100826'
if @date1>=convert(char(10),getdate,102)
print '[日期大于或就今日''
else
print '日期小于或就今日'
回复 点赞
hpx021131 2010年08月27日

convert(细心,楼主,???)
回复 点赞
发动态
发帖子
MS-SQL Server
创建于2007-09-28

1.4w+

社区成员

25.3w+

社区内容

MS-SQL Server相关内容讨论专区
社区公告
暂无公告