查询条件中的截止日期问题

Posted sxdtzhp

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了查询条件中的截止日期问题相关的知识,希望对你有一定的参考价值。

界面输入查询条件显示为:
经办日期:2021-01-01 至 2021-01-28
 
生成的查询条件合理的应为: 
WHERE AAE036 >=  TO_DATE('2021-01-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss')
    AND AAE036 <=  TO_DATE('2021-01-28 23:59:59', 'yyyy-mm-dd hh24:mi:ss')

常见的不合理情况
1、AND AAE036 <=  TO_DATE('2021-01-28 00:00:00', 'yyyy-mm-dd hh24:mi:ss')
    如果AAE036中时分秒不全为0,则无法查询到截止日期当天的数据
2、WHERE TO_CHAR(AAE036,'YYYY-MM-DD') >=  '2021-01-01'
          AND TO_CHAR(AAE036,'YYYY-MM-DD') <=  '2021-01-28'
    如果AAE036建了索引,TO_CHAR(AAE036,'YYYY-MM-DD')是无法使用到索引的。
3、WHERE AAE036 >=  TO_DATE('2021-01-01 00:00:00', 'yyyy-mm-dd hh:mi:ss')
          AND AAE036 <=  TO_DATE('2021-01-28 23:59:59', 'yyyy-mm-dd hh:mi:ss')
    24小时制应为hh24,不应该是hh,在oracle中hh是12小时制。
4、WHERE AAE036 >=  TO_DATE('2021-01-01 00:00:00', 'yyyy-mm-dd hh24:mm:ss')
          AND AAE036 <=  TO_DATE('2021-01-28 23:59:59', 'yyyy-mm-dd hh24:mm:ss')
    分钟是mi,不应该是mm,在oracle中mm是月

查询刚访问oracle的sql语句:
select * from v$sql where upper(sql_fulltext) like '%AAE036 >=  TO_DATE(%' 
and last_active_time > sysdate - 0.1;
    

以上是关于查询条件中的截止日期问题的主要内容,如果未能解决你的问题,请参考以下文章

mysql按照时间条件查询 忽略是时分秒查询

Access日期时间查询

输出java.util.Date()时间与电脑实际时间相差8小时,分秒 日期都不差,使用的Struts2三层框架?

c#dataset转换为list时,其中一个表中有一列是数据是datetime类型,我只想要小时分秒,不要日期,怎么弄呢

sql查询:数据库中的时间有时分秒,我想查某一天和某一时间段的数据(2013-4-15,2013-5-4)的数据

如何读取定时器的值?迅捷