在 MySQL 中處理日期時間是資料庫開發的基礎技能。本文系統整理了獲取當前日期時間的函數、格式化輸出的方法,以及所有可用的格式化參數,幫助您高效應對各類業務場景。
-- 獲取完整系統時間
SELECT NOW();
-- 輸出:2009-12-25 14:38:59
-- 格式化為年-月-日(兩位數年份)
SELECT DATE_FORMAT(NOW(), '%y-%m-%d');
-- 輸出:09-12-25
-- 格式化為完整標準格式
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s');
-- 輸出:2009-12-25 14:38:59
| 參數 | 說明 | 範例輸出 |
|---|---|---|
| %Y | 四位數年份 | 2024 |
| %y | 兩位數年份 | 24 |
| %m | 兩位數月份 (01-12) | 01 |
| %c | 數字月份 (1-12) | 1 |
| %M | 英文完整月份名 | January |
| %b | 英文縮寫月份名 | Jan |
| %d | 兩位數日期 (00-31) | 05 |
| %e | 數字日期 (1-31) | 5 |
| %H | 24小時制小時 (00-23) | 14 |
| %h / %I | 12小時制小時 (01-12) | 02 |
| %i | 分鐘 (00-59) | 30 |
| %s / %S | 秒數 (00-59) | 45 |
| %T | 24小時制時間 (HH:MM:SS) | 14:30:45 |
| %r | 12小時制時間 (hh:mm:ss AM/PM) | 02:30:45 PM |
| %W | 星期完整名稱 | Sunday |
| %a | 星期縮寫名稱 | Sun |
| %w | 星期數字 (0=Sunday, 6=Saturday) | 0 |
| %j | 一年中的天數 (001-366) | 360 |
| %% | 字面百分號 | % |
在查詢報表時,善用 DATE_FORMAT 直接在 SQL 層面完成格式化,可減少應用層處理邏輯。注意:格式化字串區分大小寫,%M 與 %m 含義截然不同,使用時請仔細核對。