MySQL中日期時間類型的數據,比如DATETIME、DATE、TIMESTAMP等,其存儲格式通常是YYYY-MM-DD HH:MM:SS。但是,在實際應用中,我們可能需要將其展示在頁面上,格式化為不同的形式,比如只展示日期、只展示小時、顯示為中文格式等等。
下面,我們來介紹一些在MySQL中格式化時間的常用函數。
SELECT DATE_FORMAT(日期時間字段, '格式化字符串');
其中,日期時間字段為你要格式化的日期時間指定的字段,格式化字符串是一個由不同格式符組成的字符串,如:
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s'); -- 輸出結果為 2021-07-05 15:23:56
其中NOW()函數返回當前時間,%Y表示完整的年份,%m表示月份,%d表示日期,%H表示小時(24小時制),%i表示分鐘,%s表示秒。
另外,還有一些常用的格式化字符串:
- %Y: 年份,比如2021
- %m: 月份,比如07
- %M: 月份的英文縮寫,如Jul
- %d: 日期,比如05
- %D: 帶有英文后綴的日期,比如5th
- %W: 星期的英文全稱,比如Monday
- %w: 星期的數字表示,0表示星期天,1表示星期一,以此類推
- %H: 小時(24小時制),比如15
- %h: 小時(12小時制),比如03
- %i: 分鐘,比如23
- %s: 秒,比如56
除了DATE_FORMAT函數,還有其他一些常用的時間格式化函數,如:
SELECT TIME_FORMAT(時間字段, '格式化字符串') -- 格式化時間(只包含小時、分鐘、秒) SELECT SEC_TO_TIME(秒數) -- 把秒數轉換為時間格式,比如1234變成00:20:34 SELECT FROM_UNIXTIME(時間戳, '格式化字符串') -- 從時間戳轉換為時間格式
總之,格式化時間是MySQL數據庫中的一個非常實用的函數,掌握好這些函數的用法,能夠大大方便我們的開發工作。