1. 在學習MySQL日期格式之前:基本知識
在資料庫中,日期資料的管理在各種系統中都扮演著重要角色。在MySQL中,正確儲存與適當格式化日期是不可或缺的。本章將介紹日期的儲存格式與顯示格式的基本知識,並說明對資料整形非常有用的DATE_FORMAT函數。
1.1 MySQL的日期型別與其特點
MySQL提供多種用於處理日期與時間的資料型別。理解各自的用途有助於選擇最適合的型別,並最佳化資料庫效能。
- DATE型別
以「YYYY-MM-DD」格式儲存日期。適合用於不需要時間的簡單日期資料(例如:生日或活動日期)。範例:2024-10-19
- DATETIME型別
同時儲存日期與時間。格式為「YYYY-MM-DD HH:MM:SS」,適合用於包含時間的資料(如:日誌或紀錄)。範例:2024-10-19 15:30:45
- TIMESTAMP型別
以UNIX時間戳(自1970年1月1日起的秒數)儲存,常用於跨時區系統。可使用CURRENT_TIMESTAMP
取得目前的時間戳。
日期型別的選擇應根據應用需求謹慎決定,這能提升資料的正確性與查詢效率。
1.2 日期的儲存與顯示差異
在MySQL中儲存日期時,資料庫會以標準格式儲存,但常需要以使用者易於閱讀的格式輸出。這時就會用到DATE_FORMAT函數。透過此函數,可以將已儲存的資料以自訂格式輸出。
接下來的章節將深入介紹DATE_FORMAT函數的用法與應用技巧。

2. DATE_FORMAT函數的基本用法
DATE_FORMAT函數用於將儲存的日期格式化為指定格式。透過靈活的格式符號,可以自訂多種輸出樣式。
2.1 DATE_FORMAT函數語法
DATE_FORMAT(date, format)
date
: 欲格式化的日期資料(DATE、DATETIME、TIMESTAMP等)。format
: 指定輸出格式的字串,使用%
符號搭配格式符號。
例如,下列查詢會將日期轉換為「YYYY/MM/DD」格式:
SELECT DATE_FORMAT('2024-10-19', '%Y/%m/%d');
結果:
2024/10/19
2.2 格式符號的詳細說明
DATE_FORMAT函數提供多種格式符號,可靈活輸出日期與時間。以下是常用的格式符號:
%Y
: 四位數年份(例:2024)%m
: 兩位數月份(01–12)%d
: 兩位數日期(01–31)%W
: 星期名稱(例:Saturday)%H
: 24小時制小時(00–23)%i
: 分鐘(00–59)%s
: 秒數(00–59)
例如,下列查詢會顯示星期與年月日:
SELECT DATE_FORMAT('2024-10-19', '%W, %Y-%m-%d');
結果:
Saturday, 2024-10-19
2.3 輸出日文格式
DATE_FORMAT也能輸出日文格式。以下查詢會以「YYYY年MM月DD日」的格式輸出:
SELECT DATE_FORMAT('2024-10-19', '%Y年%m月%d日');
結果:
2024年10月19日
這種格式常用於日本的報表、發票與文件。
3. DATE_FORMAT的進階技巧
DATE_FORMAT函數可以與其他MySQL函數搭配使用,讓日期操作更強大。本章將介紹幾個常見技巧。
3.1 與其他日期函數結合
DATE_FORMAT函數可與DATE_ADD與DATE_SUB等函數結合,進行動態日期運算。
範例:日期加一個月後再格式化
SELECT DATE_FORMAT(DATE_ADD('2024-10-19', INTERVAL 1 MONTH), '%Y-%m-%d');
結果:
2024-11-19
能進行日期計算並格式化輸出,適用於動態報表與資料更新。
3.2 搭配STR_TO_DATE函數
STR_TO_DATE函數可將字串轉換為日期型別。搭配DATE_FORMAT即可精準處理字串型日期。
範例:將字串轉換為日期並套用格式
SELECT DATE_FORMAT(STR_TO_DATE('2024年10月19日', '%Y年%c月%e日'), '%Y/%m/%d');
結果:
2024/10/19
可先轉換複雜字串,再格式化輸出。

4. 常見日期格式範例
以下介紹幾個在業務與系統中常見的日期格式,實際應用中相當實用。
4.1 斜線分隔的日期
SELECT DATE_FORMAT('2024-10-19', '%Y/%m/%d');
結果:
2024/10/19
斜線格式常用於Web表單與UI介面。
4.2 ISO 8601格式
SELECT DATE_FORMAT('2024-10-19', '%Y-%m-%d');
結果:
2024-10-19
ISO 8601為國際標準,適合系統間資料交換。
4.3 顯示星期與月份名稱
SELECT DATE_FORMAT('2024-10-19', '%M %W');
結果:
October Saturday
適合用於活動日程或行事曆顯示。
5. 總結
DATE_FORMAT函數是MySQL中靈活操作日期格式的強大工具。從基本應用到與其他函數結合的進階技巧,都能廣泛應用。
結合STR_TO_DATE或DATE_ADD等函數,更能提升資料處理的彈性。建議善用本文介紹的技巧,高效操作日期資料,並優化系統與應用程式的資料處理。
持續活用MySQL的功能,提升資料庫操作效率,打造更完善的系統開發。