UNIX_TIMESTAMP() 是 MySQL 處理日期時間轉 Unix 時間戳的核心函數。本文詳細說明無參數、帶參數兩種呼叫模式、支援格式、TIMESTAMP 欄位特殊行為與溢出處理。
SELECT UNIX_TIMESTAMP();
回傳 1970-01-01 00:00:00 UTC 至今的秒數(無符號整數)。
範例:882226357
SELECT UNIX_TIMESTAMP('1997-10-04 22:23:00');
回傳:875996580
| 格式類型 | 範例 |
|---|---|
| DATE 字串 | '1997-10-04' |
| DATETIME 字串 | '1997-10-04 22:23:00' |
| TIMESTAMP 值 | 19971004222300 |
| YYMMDD 數字 | 971004 |
| YYYYMMDD 數字 | 19971004 |
當參數為 TIMESTAMP 類型欄位時,函數直接回傳內部儲存的時間戳值,不進行「字串→時間戳」轉換,效能最佳。
1970-01-01 00:00:00 ~ 2037-12-31 23:59:59(32 位元有號整數上限)。0。SELECT FROM_UNIXTIME(875996580); -- '1997-10-04 22:23:00'
SELECT FROM_UNIXTIME(875996580, '%Y-%m-%d %H:%i:%s'); -- 格式化輸出