时间段
发现个问题
select * from tb where dt between '2007-06-03 ' and '2007-06-03 23:59:39 '
这条语句会把 2007-06-04 数据查出来。
想问下,这是sqlserver规定的吗
[解决办法]
为什么我的可用分不长了?呵呵。顶一个,看看长么??
[解决办法]
这样是查不出来
[解决办法]
select * from
(select '2007-06-03 ' as A union all select '2007-06-03 23:59:39 ' as A union all select '2007-06-04 ')
tb where A between '2007-06-03 ' and '2007-06-03 23:59:39 '
2007-06-03
2007-06-03 23:59:39
[解决办法]
datetime类型的查不出来。
不知道你是怎么查出来的。。。
[解决办法]
不论是日期还是字符型都不会查出来的
[解决办法]
不好意思没看见是smalldatetime :(
smalldatetime 默认23:59:29 之前为当日 之后为次日 lz查的相当于select * from tb where dt between '2007-06-03 ' and '2007-06-04 00:00:00 '
[解决办法]
smalldatetime精确到分钟
精度的临界值为29.999 秒
'2007-06-03 23:59:39 ' 就相当于 '2007-06-04 00:00:00 '
可以将显示转化成smalldatetime就知道结果了
SELECT CAST( '2007-06-03 23:59:39 ' AS smalldatetime)
[解决办法]
我以前也出现过这样的问题,呵呵
最好就是用datetime,不用smalldatetime了,^_^