注册 登录
编程论坛 SQL Server论坛

使用between 查询1月1号到12月31号数据 12月31号的数据查不出

夜龙魂 发布于 2010-09-03 10:27, 1182 次点击
between为什么不能把最后的当前判断查出来 非要大一个值


[ 本帖最后由 夜龙魂 于 2010-9-3 10:38 编辑 ]
7 回复
#2
qingshuiliu2010-09-03 11:00
between就是两个日期之间的所有的值啊,
你可以在程序中传递参数的时候,认为的把日期多加一天,
根据情况自己判断。
#3
夜龙魂2010-09-03 11:42
12月31 +1会报错因为超出了日期范围
#4
gameohyes2010-09-03 11:43
其实这样也行的
把日期的时间换下: 23:59:59
#5
aei1352010-09-03 13:42
4楼说得对,不然12月31日系统会当12月31日0时0点0分处理的
#6
liweijie90_2010-09-03 16:19
在between...and..后满在加个条件判断12月31号的
#7
qingshuiliu2010-09-03 17:17
“其实这样也行的
把日期的时间换下: 23:59:59 ”
我碰到这种情况,也是用这个办法的
#8
tangyunzhong2010-09-04 09:23
回复 楼主 夜龙魂
你查不到的应该是12月31号当天的数据吧,查看一下你存储日期字段的格式啊,据判断应该是:X年X月X日 X时X分X秒
这样的格式,所以你在between 1.1 and 12.31时,就被系统当成 between 1.1 00:00:00 and 12.31 00:00:00 来比较的,因此你是查不到31日那天的数据的。以下办法可以解决你的问题,between 1.1 00:00:00 and 12.31 23:59:59
1