问题描述
select * from tawoke ta where ta.l_awokeid='283' and ta.d_awokedate>=to_date('20061113','YYYYMMDD') and ta.d_awokedate<=to_date('20061113','YYYYMMDD') ; select * from tawoke ta where ta.l_awokeid='283' and to_date(to_char(D_AWOKEDATE,'YYYYMMDD'),'YYYYMMDD') >=to_date('20061113','YYYYMMDD') and to_date(to_char(D_AWOKEDATE,'YYYYMMDD'),'YYYYMMDD') <=to_date('20061113','YYYYMMDD'); 为什么同一条数据,上面查不出来,下面的sql就可以查询出来的,d_awokedate这个字段值为2006/11/13 10:03:49的时候上面是查询不出来的,如果为2006/11/13则都可以查询出来,一个简单的常用的sql,希望大家一起来讨论下
解决方案
因为精度的问题,因为你的查询条件是>= and <= 20061113,所以截取d_awokedate的年月日是满足查询条件的,但是保留时分秒是无法满足查询条件的,所以说看似相同的查询语句,最后执行的结果不一样。
解决方案二:
ta.d_awokedate是字符类型还是日期类型?
时间: 2024-11-27 12:01:41