2 swun jungle SWUN_jungle 于 2017.09.07 16:53 提问

查询语句为什么分别以char和data为条件的查询结果不一样

图片说明

红色数字是查询出来的数据数目

3个回答

wbzhang2010
wbzhang2010   2017.09.07 17:39
已采纳

第一条SQL的条件是匹配2017-07-01 00:00:00 到 2017-07-31 00:00:00
第二条SQL的条件是匹配2017-07-01 00:00:00 到 2017-07-31 23:59:59

wbzhang2010
wbzhang2010 回复SWUN_jungle: select to_date('2017-09-11','yyyy-MM-dd') from dual; 得出的结果是2017-09-11 00:00:00,也就是说只能取到2017-07-31 00:00:00这个时间点
2 个月之前 回复
SWUN_jungle
SWUN_jungle 我昨天测试了一下,应该是对的,但是我的dzdrq字段在数据库也只取到了天,为什么日期2017-07-31不能包含在2017-07-01到2017-07-31
2 个月之前 回复
qq_22088787
qq_22088787   2017.09.07 17:01

这个我个人认为是由于转换的过程中精度损失导致的,b.dzdrq本身精度是毫秒级的,转换成yyyy-mm-dd后会损失天之后的精度。比如b.dzdrq本身值是
2008-08-08 08:08:08 888,转换后就变成2008-08-08 了,这其中有长达8个多小时的时间差

qq_33727653
qq_33727653   2017.09.07 17:24

时期的那个是查的7月31日 0点0时0分之前的,而字符串的那个查的是 7月31日 23点59时59分之前的!!!!

SWUN_jungle
SWUN_jungle 我昨天测试了一下,应该是对的,但是我的dzdrq字段在数据库也只取到了天,为什么日期2017-07-31不能包含在2017-07-01到2017-07-31
2 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片