在 DB2 資料庫日常操作中,獲取系統當前時間是最基礎也最常用的需求。DB2 提供了三個特殊暫存器,分別對應日期、時間與完整時間戳記,搭配 SYSIBM.SYSDUMMY1 這張內建單列虛擬表,即可直接查詢,無需存取實體資料表。
SELECT CURRENT DATE FROM SYSIBM.SYSDUMMY1;
回傳格式為 YYYY-MM-DD,適合用於報表抬頭、歸檔命名或日期篩選條件。
SELECT CURRENT TIME FROM SYSIBM.SYSDUMMY1;
回傳格式為 HH:MM:SS,常用於記錄交易發生的精確時間點。
SELECT CURRENT TIMESTAMP FROM SYSIBM.SYSDUMMY1;
回傳格式為 YYYY-MM-DD-HH.MM.SS.ffffff,精度達微秒,是審計追蹤、並發控制與唯一鍵值生成的首選。
CURRENT TIMESTAMP WITH TIME ZONE (DB2 11.5+ 支援)。CURRENT DATE + 7 DAYS 取得一週後日期。VARCHAR_FORMAT() 或 TO_CHAR() 可輸出自訂格式,如 VARCHAR_FORMAT(CURRENT TIMESTAMP, 'YYYYMMDDHH24MISS')。請勿混淆 CURRENT DATE/TIME/TIMESTAMP (特殊暫存器,語句執行期間固定) 與 NOW() (函式,每次呼叫可能不同),後者在 DB2 中並非標準語法,移植性較差。

掌握這三個特殊暫存器,即能輕鬆應對 DB2 開發中 90% 以上的時間獲取場景,建議收藏備查。