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

SQL 中BETWEEN AND的搜索范围解决思路

2012-04-12 
SQL 中BETWEEN AND的搜索范围今天发现系统里边有一个bug,搜索日期在 BETWEEN 2011-09-01 AND 2011-09-3

SQL 中BETWEEN AND的搜索范围
今天发现系统里边有一个bug,搜索日期在 BETWEEN '2011-09-01' AND '2011-09-30 23:59:59.999' 的内容,结果居然把2011-10-01的也包括进来了,无比纳闷中。
一直觉得between and 的作用就是 >= <= ,难道是搜索时四舍五入了?因为改成BETWEEN '2011-09-01' AND '2011-09-30 23:59:59.000'就不会出现2011-10-01了,希望大侠们来解释下呀

[解决办法]
你这样子写第一个就改成 2011-09-01 00:00:00.000 试试。
[解决办法]
'2011-09-30 23:59:59.997' 试试。。datetime精确到 1/300秒
[解决办法]
'2011-09-30 23:59:59.999' 
改成
'2011-09-30 23:59:59.997'
看看
[解决办法]
select cast('2011-09-30 23:59:59.997' as datetime) 
select cast('2011-09-30 23:59:59.999' as datetime)
[解决办法]
如楼上所示

SQL code
select cast('2011-09-30 23:59:59.997' as datetime)  select cast('2011-09-30 23:59:59.999' as datetime)
[解决办法]
确保字段类型是时间类型,或者比较的时候转成时间类型即可

热点排行