超级斗士 2013-08-02 15:06 采纳率: 0%
浏览 244
已采纳

关于日期的问题,两个sql查出来的数据不一样,大家看下为什么

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,希望大家一起来讨论下

  • 写回答

2条回答 默认 最新

  • QiangGe2Dai 2013-08-02 15:59
    关注

    因为精度的问题,因为你的查询条件是>= and <= 20061113,所以截取d_awokedate的年月日是满足查询条件的,但是保留时分秒是无法满足查询条件的,所以说看似相同的查询语句,最后执行的结果不一样。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?