【问题标题】:What does Oracle SYSDATE - 1/8 mean?Oracle SYSDATE - 1/8 是什么意思?
【发布时间】:2021-12-14 20:27:03
【问题描述】:

我正在查看一个查询:

select JOB_ID from db where last_updated_date >= sysdate - 1/8

我浏览了ORACLE SYSDATE 文档,但无法理解sysdate - 1/8 的含义。

请澄清。

【问题讨论】:

标签: sql oracle oracle-sqldeveloper sysdate


【解决方案1】:

它将从sysdate 中减去 3 小时(24 小时/8 小时),请尝试运行以下命令:

select to_char((sysdate - 1/8), 'mm/dd/yyyy hh24:mi:ss') from dual

这将为您提供数据库当前日期/时间之前的 3 小时。

【讨论】:

    【解决方案2】:

    在 Oracle 中,这意味着您要减去一整天的 1/8。因为一天有 24 小时,所以它的 1/8 部分是 24/8 = 3 小时。所以:

    SQL> alter session set nls_date_format = 'dd.mm.yyyy hh24:mi:ss';
    
    Session altered.
    
    SQL> select sysdate col1,
      2         sysdate - 1/8 col2
      3  from dual;
    
    COL1                COL2
    ------------------- -------------------
    29.10.2021 22:18:36 29.10.2021 19:18:36
    
    SQL>
    
    • 日期值保持不变(今天仍然是 29.10.2021)
    • 时间变了;现在是 22:18:36。当我们从中减去 3 小时时,我们得到 19:18:36(提前 3 小时)

    这意味着您的查询获取last_updated_date 列值在过去 3 小时内的行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-28
      • 1970-01-01
      • 2014-02-05
      • 1970-01-01
      • 2016-11-18
      • 2019-11-19
      相关资源
      最近更新 更多