开发者社区> 问答> 正文

关于日期的问题,两个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,希望大家一起来讨论下

展开
收起
长安归故里. 2020-01-31 13:47:16 1185 0
1 条回答
写回答
取消 提交回答
  • 采纳的答案 因为精度的问题,因为你的查询条件是>= and <= 20061113,所以截取d_awokedate的年月日是满足查询条件的,但是保留时分秒是无法满足查询条件的,所以说看似相同的查询语句,最后执行的结果不一样。

    2020-01-31 13:47:23
    赞同 展开评论 打赏
问答分类:
SQL
问答地址:
问答排行榜
最热
最新

相关电子书

更多
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载
AnalyticDB基础版:云原生My SQL 敏捷数仓 立即下载