在MySQL中,時間常常以字串的形式儲存在表中,但這樣做並不方便進行時間的計算和比較。因此,需要將字串類型的時間轉換為時間類型,以方便我們進行相關操作。本文將介紹MySQL中如何進行時間的轉換。
在MySQL中,時間可以用DATETIME、TIMESTAMP、DATE、TIME等型表示。這些類型在MySQL中儲存的時間都是UTC時間。
將字串類型的時間轉換為時間類型,可以使用MySQL提供的STR_TO_DATE()函數。此函數的語法如下:
STR_TO_DATE(str, format)
其中,str表示要轉換的字串,format表示字串中日期和時間的格式。例如:
SELECT STR_TO_DATE('2019-08-14 21:12:23', '%Y-%m-%d %H:%i:%s');
這條SQL語句將會傳回一個DATETIME類型的時間,表示2019年8月14日21時12分23秒。
使用STR_TO_DATE()函數時,需要注意以下幾點:
除了STR_TO_DATE()函數之外,還可以使用UNIX_TIMESTAMP()函數將字串類型的時間轉換為UNIX時間戳記。 UNIX時間戳表示從1970年1月1日00時00分00秒至目前時間的秒數,它是一個整數。例如:
SELECT UNIX_TIMESTAMP('2019-08-14 21:12:23');
這條SQL語句將會傳回一個整數,表示2019年8月14日21時12分23秒的UNIX時間戳記。
由於UNIX時間戳記和MySQL中的時間類型都是UTC時間,因此它們可以直接進行比較和計算。例如,可以使用UNIX_TIMESTAMP()將時間類型轉換為UNIX時間戳,再進行相減,得出兩個時間的時間差。例如:
SELECT UNIX_TIMESTAMP('2019-08-14 21:12:23') - UNIX_TIMESTAMP('2019-08-14 21:12:21');
這條SQL語句將會傳回一個整數,表示2019年8月14日21時12分23秒與2019年8月14日21時12分21秒之間的時間差,即2秒。
除了將字串類型的時間轉換為時間類型,還可以使用DATE_FORMAT()函數將時間類型轉換為字串類型。此函數的語法如下:
DATE_FORMAT(date, format)
其中,date為要轉換的時間,format為傳回的字串格式。例如:
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s');
這條SQL語句將會傳回目前時間的字串表示,格式為」YYYY-MM-DD HH:MI:SS」。
總結:
在MySQL中,時間常常以字串的形式儲存在表格中。為了方便進行時間的計算和比較,需要將字串類型的時間轉換為時間類型,以便直接進行計算和比較。可以使用MySQL提供的STR_TO_DATE()和UNIX_TIMESTAMP()函數將字串類型的時間轉換為時間類型或UNIX時間戳,也可以使用DATE_FORMAT()函數將時間類型轉換為字串類型。在使用轉換函數時,需要注意格式字串的書寫規範和使用嚴格模式的問題。
以上是MySQL中如何進行時間的轉換的詳細內容。更多資訊請關注PHP中文網其他相關文章!