首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

时间段解决办法

2012-01-08 
时间段发现个问题select*fromtbwheredtbetween2007-06-03and2007-06-0323:59:39这条语句会把 2007-06-04数

时间段
发现个问题

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了,^_^

热点排行