SELECT FROM_UNIXTIME(1234567890, '%Y-%m-%d %H:%i:%s');
-- 結果:2009-02-14 07:31:30
| 符號 | 含義 |
|---|---|
| %Y | 四位年 |
| %m | 兩位月 |
| %d | 兩位日 |
| %H | 24小時 |
| %i | 分鐘 |
| %s | 秒 |
| %T | %H:%i:%s 縮寫 |
| %F | %Y-%m-%d 縮寫 |
-- 欄位 ts 為 INT(11) 儲存 Unix 時間戳
SELECT id, FROM_UNIXTIME(ts, '%Y-%m-%d %H:%i:%s') AS create_time
FROM logs;
假設 A1 儲存時間戳 1234567890:
=(A1 + 8*3600) / 86400 + DATE(1970,1,1)
-- 或
=(A1 / 86400) + "1970/1/1" + TIME(8,0,0)
原理:Excel 日期基準為 1900/1/1(序數 1),Unix 基準為 1970/1/1。需加 8 小時修正時區(UTC+8),再除以 86400 秒換算天數。
FROM_UNIXTIME 依伺服器 time_zone 系統變數轉換(預設 SYSTEM)。CONVERT_TZ(FROM_UNIXTIME(ts), 'UTC', '+08:00')。-- 日期轉時間戳
SELECT UNIX_TIMESTAMP('2024-05-20 14:30:00');
-- 1716186600
-- 當前時間戳
SELECT UNIX_TIMESTAMP();