【问题标题】:Oracle: issue with where clause date queryOracle:where 子句日期查询的问题
【发布时间】:2015-12-21 07:58:11
【问题描述】:

环境:oracle数据库

我有一个列名为 DateOfAct 的表,它是 Date 数据类型,包含日期和时间(例如:2015-10-28 21:21:10,2015 -10-29 11:09:45)

我需要获取一天 20-12-2015 从早上 12:00:00 到晚上 23:59:59 的记录强>

 select * from my_table 
 where DateOfAct >= to_date('20-12-2015 00:00:00' , 'dd-mm-yyyy 24HH:MI:SS')
 and   DateOfAct <= to_date('20-12-2015 23:59:59', 'dd-mm-yyyy 24HH:MI:SS')

【问题讨论】:

  • 你能定义你正在解决的具体问题吗?
  • 到底是什么问题?你有错误吗?
  • 尝试使用 DateOfAct BETWEEN '20-12-2015 00:00:00' AND '20-12-2015 23:59:59'

标签: oracle


【解决方案1】:

以下代码应该可以解决您的问题: 在日期格式中输入 'HH24' 而不是 '24HH'

 select * from my_table 
 where DateOfAct >= to_date('20-12-2015 00:00:00' , 'dd-mm-yyyy HH24:MI:SS')
 and   DateOfAct <= to_date('20-12-2015 23:59:59', 'dd-mm-yyyy HH24:MI:SS')

【讨论】:

    【解决方案2】:

    不明白这里有什么问题..但是你可以尝试使用 between。

    select * 
    from my_table 
    where DateOfAct between to_date('20151220000000','YYYYMMDDHH24MISS') 
          and to_date('20151220235959','YYYYMMDDHH24MISS');
    

    【讨论】:

      【解决方案3】:

      从早上 12:00:00 开始到晚上 23:59:59

      在你的查询开始日期是to_date('20-12-2015 00:00:00' , 'dd-mm-yyyy 24HH:MI:SS') - 00:00 (HH24:mi),如果你想要 12:00 (HH24:mi) 应该是 to_date('20-12-2015 12:00:00' , 'dd-mm-yyyy HH24:MI:SS')

      select * 
        from my_table 
       where DateOfAct between to_date('20-12-2015 12:00:00', 'dd-mm-yyyy HH24:MI:SS') 
                           and to_date('20-12-2015 23:59:59', 'dd-mm-yyyy HH24:MI:SS')
      

      【讨论】:

        【解决方案4】:

        查询可以更改为

        select * from my_table where trunc(DateOfAct)='20-Dec-2015'
        

        解释:

        trunc 函数从日期中删除时间部分,并允许您只比较日期值而不比较时间。

        【讨论】:

        • 为什么是trunc(DateOfAct)='20-Dec-2015'?当您可以如此轻松地将字符串转换为日期时,为什么要将日期与字符串进行比较 - 事实上,OP 试图这样做(尽管格式掩码略有不正确)?我对此表示反对。更正它,我会撤销反对票。
        猜你喜欢
        • 2020-12-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多