網頁

2020/4/10

Oracle CURRENT_TIMESTAMP 與 SYSTIMESTAMP 區別

在Oracle PL/SQL 可以用CURRENT_TIMESTAMPSYSTIMESTAMP取得現在日期時間。兩者差別如下。


CURRENT_TIMESTAMP為取得開啟連線(session)所在地的現在時間;
SYSTIMESTAMP為資料庫所在地的現在時間。

例如下面是我本機Oracle SQL Developer連線到AWS上的Oracle DB並使用CURRENT_TIMESTAMPSYSTIMESTAMP的查詢結果。

SELECT CURRENT_TIMESTAMP, SYSTIMESTAMP FROM DUAL;
+---------------------------------------------+-------------------------------------+
|              CURRENT_TIMESTAMP              |            SYSTIMESTAMP             |
+---------------------------------------------+-------------------------------------+
| 14-JAN-20 11.30.02.356789000 AM ASIA/TAIPEI | 14-JAN-20 03.30.02.356784000 AM GMT |
+---------------------------------------------+-------------------------------------+

我的位置在台北所以CURRENT_TIMESTAMP顯示時間為台北時區的時間,
SYSTIMESTAMP顯示的時間為AWS DB所在地的時間 (AWS DB預設使用UTC/GMT時間)。

參考:

沒有留言:

張貼留言