【问题标题】:how to use Current Timestamp in SQL query (Oracle)如何在 SQL 查询(Oracle)中使用当前时间戳
【发布时间】:2019-03-16 09:22:48
【问题描述】:

我想运行查询以显示 30 天之前和 30 天之后的数据,我知道我应该使用 CURRENT TIMESTAMP 来执行此操作,并且我能够在 30 天之前但不能在 30 天之后运行数据。以下是我的查询,请告知这种情况。谢谢!

COB.COB_FA  > CURRENT TIMESTAMP - 30 days and COB.COB_FA  > CURRENT TIMESTAMP + 30 days

【问题讨论】:

  • 和你系统的undo_retention参数有关。
  • CURRENT_TIMESTAMP,不是吗?你是什​​么意思你不能?你有错误吗?是否有出现您意想不到的记录? stackoverflow.com/questions/17922106/…
  • @kchason 你好,我会收到空​​结果,它不应该是空结果
  • 如果你所拥有的确实是你的 WHERE 条件,那么第一部分是无用的,至于当第二部分为真时(COB.COB_FA > CURRENT TIMESTAMP + 30 days),第一部分本质上总是如此。除非这种不平等是倒退的?

标签: sql oracle


【解决方案1】:

我想你只是想要or:

COB.COB_FA < CURRENT TIMESTAMP - interval '30' day or
COB.COB_FA  > CURRENT TIMESTAMP + '30' day

【讨论】:

    【解决方案2】:

    在下面尝试使用 current_timestamp (+/-) 间隔“30”天

    COB.COB_FA  < current_timestamp - interval '30' day or COB.COB_FA  > current_timestamp + interval '30' day
    

    【讨论】:

    • 这与最初的问题有相同的问题。当 x > 30 为真时,x > -30 将始终为真
    • @kchason,我认为唯一的问题是添加日期,所以我没有注意到,但感谢您指出
    【解决方案3】:

    sysdate 可以做到这一点。

    `在 sysdate - 30 和 sysdate + 30 之间的 COB.COB_FA

    【讨论】:

      【解决方案4】:

      这将起作用:

      create table table_date(dd date);
      insert into table_date values(trunc(sysdate));
      
      insert into table_date values(trunc(sysdate)+1);
      
      insert into table_date values(trunc(sysdate)+2);
      
      insert into table_date values(trunc(sysdate)+9);
      
      insert into table_date values(add_months(trunc(sysdate),-5));
      
      //inserting more of them
      
      alter session set nls_date_format = 'dd/MON/yyyy hh24:mi:ss';
      SELECT * FROM table_date order by dd;
      
      11/MAY/2018 00:00:00
      11/JUL/2018 00:00:00 
      11/OCT/2018 00:00:00
      12/OCT/2018 00:00:00
      13/OCT/2018 00:00:00
      18/OCT/2018 00:00:00
      20/OCT/2018 00:00:00
      11/JAN/2019 00:00:00
      11/MAR/2019 00:00:00
      
      SELECT * FROM table_date where dd>add_months(current_timestamp,1) or 
      dd<add_months(current_timestamp,-1);
      

      样本输出:

      11/JAN/2019 00:00:00
      11/MAR/2019 00:00:00
      11/JUL/2018 00:00:00
      11/MAY/2018 00:00:00
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-02-14
        • 1970-01-01
        • 2020-06-04
        • 2014-05-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多