Oralce的SYSDATE
與SYSTIMESTAMP
函式皆可取得資料庫所在系統的日期時間,而差別如下。
SYSDATE
預設返回日期格式資訊,其仍包含了時間資訊,但不包含毫秒資訊,也不包含時區(time zone)資訊。
SELECT TO_CHAR(SYSDATE,'MM-DD-YYYY HH24:MI:SS' ) AS NOW FROM DUAL;
NOW
-------------------
11-29-2018 22:38:36
而SYSTIMESTAMP
會傳回資料庫所在系統的日期,時間,毫秒及時區資訊。
SELECT SYSTIMESTAMP AS NOW FROM DUAL;
NOW
------------------------------------
29-NOV-18 10.43.28.341000 PM +08:00
會有以上的疑問是因為最近專案的資料表schema文件在取得當前時間時(例如資料表的的建立時間欄位及更新時間欄位),發現有人用SYSDATE
,也有人用SYSTIMESTAMP
,搞得我好亂阿。
一般來說多是用SYSTIMESTAMP
,因為比較精確。
另外Oracle TIMESTAMP
的最大值為9999-12-31-23.59.59.999999
參考:
沒有留言:
張貼留言