MySQL 中時間數據類型有三種:時間(TIME)、日期(DATE)和日期時間(DATETIME),而在實際應用中,時分秒經常需要被轉換成秒,以便計算時間間隔或轉化成別的時間單位。
在 MySQL 中,可以使用 TIME_TO_SEC() 函數將時間值轉換成秒數。具體用法如下:
SELECT TIME_TO_SEC('01:30:00');
這里的參數是一個 TIME 類型的值,輸出結果如下:
+-------------------------+ | TIME_TO_SEC('01:30:00') | +-------------------------+ | 5400 | +-------------------------+
可以看到,這個函數輸出的結果是一個整數,代表時分秒所對應的秒數。
另外,如果要將日期時間類型的值轉換成秒數,需要先使用 UNIX_TIMESTAMP() 函數將其轉換成時間戳,再使用 TIME_TO_SEC() 函數進行轉換。具體用法如下:
SELECT TIME_TO_SEC(TIMEDIFF('2022-02-11 10:30:00', '2022-02-11 08:00:00'));
這里使用了 TIMEDIFF() 函數計算出兩個日期時間之間的時間差,再使用 TIME_TO_SEC() 函數將其轉換成秒數,輸出結果如下:
+---------------------------------------------------------------------+ | TIME_TO_SEC(TIMEDIFF('2022-02-11 10:30:00', '2022-02-11 08:00:00')) | +---------------------------------------------------------------------+ | 9000 | +---------------------------------------------------------------------+
可以看到,這個函數同樣輸出的結果是一個整數,代表日期時間之間的秒數差。