Oracle SYSDATE - 1/8是什么意思?



我正在看一个查询:

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

我看了ORACLESYSDATE的文档,但不明白sysdate - 1/8是什么意思。

请澄清。

在Oracle中,这意味着你减去了一天的1/8。因为一天有24小时,所以它的八分之一是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小时内的行。

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

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

这将给出比数据库当前日期/时间早3小时的时间。

相关内容

  • 没有找到相关文章

最新更新