mysqldatetime是MySQL中用於存儲日期和時間的常用類型。在實際應用中,需要對mysqldatetime進行格式化以方便展示和處理。本文將從多個方面對mysqldatetime格式化做詳細的闡述。
一、日期格式化
格式化日期是一個常見的需求。可以通過在SELECT語句中使用DATE_FORMAT()函數來實現。DATE_FORMAT()函數的第一個參數為需要格式化的日期字段,第二個參數為指定的格式。
SELECT DATE_FORMAT('2022-11-11', '%Y年%m月%d日');
以上代碼將輸出2022年11月11日。
常用的日期格式化參數如下:
- %Y:年份,四位數
- %y:年份,兩位數
- %m:月份,01-12
- %d:日期,01-31
- %W:星期幾,完整名稱
- %w:星期幾,數字,0-6
二、時間格式化
格式化時間也是常見需要。可以使用DATE_FORMAT()函數的第二個參數來指定時間格式。
SELECT DATE_FORMAT('2022-11-11 14:55:30', '%H:%i:%s');
以上代碼將輸出14:55:30。
常用的時間格式化參數如下:
- %H:小時,24小時制
- %h:小時,12小時制
- %i:分鐘,00-59
- %s:秒,00-59
- %p:上午/下午
三、日期時間格式化
DATE_FORMAT()函數可以同時格式化日期和時間。只需要將格式化參數按照日期和時間分別加入即可。
SELECT DATE_FORMAT('2022-11-11 14:55:30', '%Y年%m月%d日 %H:%i:%s');
以上代碼將輸出2022年11月11日 14:55:30。
四、時區處理
在處理日期和時間時,需要注意時區的問題。MySQL默認使用服務器的時區,但是可以通過設置全局或會話變量來更改時區。
使用SET time_zone = ‘+8:00’;設置東八區時區。
當時間存儲在MySQL中時,可以使用CONVERT_TZ()函數來將時間轉換成需要的時區。參數一為時間數據,參數二為原時區,參數三為目標時區。
SELECT CONVERT_TZ('2022-11-11 14:55:30', '+00:00', '+08:00');
以上代碼將返回東八區的時間戳。
五、MySQL與PHP時間格式化
在PHP代碼中,可以使用date()函數來將日期和時間格式化。和MySQL類似,date()函數的第二個參數指定需要輸出的時間格式。
echo date('Y-m-d H:i:s', strtotime('2022-11-11 14:55:30'));
以上代碼將輸出2022-11-11 14:55:30。
需要注意的是,MySQL和PHP中的時間戳(timestamp)是不同的。MySQL中的時間戳是從1970年1月1日零時零分零秒開始的,而PHP中的時間戳是從1970年1月1日格林威治標準時間(GMT)零時零分零秒開始的。因此,在PHP代碼中使用MySQL的時間戳需要進行轉換。
echo date('Y-m-d H:i:s', strtotime('+8 hours', strtotime('2022-11-11 14:55:30')));
以上代碼將輸出2022-11-11 22:55:30。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/183027.html