我在看一個查詢:
select JOB_ID from db where last_updated_date >= sysdate - 1/8
我瀏覽了ORACLE SYSDATE檔案,但不明白是什么sysdate - 1/8意思。
請說清楚。
uj5u.com熱心網友回復:
在 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 小時內的行。
uj5u.com熱心網友回復:
它將從 中減去 3 小時(24 小時/8)sysdate,嘗試運行以下命令:
select to_char((sysdate - 1/8), 'mm/dd/yyyy hh24:mi:ss') from dual
這將使您比資料庫的當前日期/時間早 3 小時。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/346928.html
