SELECT UNIX_TIMESTAMP('1997-10-04 22:23:00');
-- 875996580
UNIX_TIMESTAMP() 返回當前時間戳DATE、DATETIME、TIMESTAMP 型別SELECT FROM_UNIXTIME(875996580); -- '1997-10-04 22:23:00'
FROM_UNIXTIME(ts, '%Y-%m-%d %H:%i:%s')| 操作 | PHP 函數 | 範例 |
|---|---|---|
| INT → 格式化日期字串 | date() | echo date('Y-m-d', $ts); |
| 日期字串 → INT | strtotime() | $ts = strtotime('1997-10-04 22:23:00'); |
| DateTime 物件 → INT | DateTime::getTimestamp() | (new DateTime())->getTimestamp(); |
| INT → DateTime 物件 | DateTime::setTimestamp() | $dt = new DateTime(); $dt->setTimestamp($ts); |
DATETIME(6) 支援微秒,排序/範圍查詢原生支援,優於 INTtime_zone、PHP date.timezone、應用層統一設為 UTC,避免跨時區偏移TO_DAYS() 或 YEAR() 而非 UNIX_TIMESTAMPWHERE ts BETWEEN UNIX_TIMESTAMP('2023-01-01') AND UNIX_TIMESTAMP('2023-01-31') 可用 INT 索引-- 當前時間戳
SELECT UNIX_TIMESTAMP();
-- 當前日期時間
SELECT NOW(); -- DATETIME
SELECT CURDATE(); -- DATE
SELECT CURTIME(); -- TIME
-- 日期運算
SELECT DATE_ADD(NOW(), INTERVAL 1 DAY);
SELECT DATE_SUB(NOW(), INTERVAL 3 HOUR);
SELECT DATEDIFF('2023-12-31', '2023-01-01');
掌握雙向轉換與時區控制,消除時間處理中的隱性 Bug。