在MySQL中,時間可以通過日期和時間類型來存儲。在一些數據處理任務中,需要將這些時間轉換成時間戳以便于進行一些日期時間函數的處理。MySQL數據庫中有現成的DATE_FORMAT()函數可以將時間轉換成指定格式的字符串,然后再用UNIX_TIMESTAMP()函數將字符串轉換成時間戳。
SELECT UNIX_TIMESTAMP(DATE_FORMAT('2022-01-01 12:00:00', '%Y-%m-%d %H:%i:%s'));
上述代碼將'2022-01-01 12:00:00'這個時間字符串轉換成指定格式的字符串'%Y-%m-%d %H:%i:%s',即將年份、月份、日期、小時、分鐘和秒數分別用'-'和':'隔開。然后再用UNIX_TIMESTAMP()函數將格式化后的字符串轉換成時間戳,結果為:"1641028800"。
除了使用現成的函數之外,我們還可以使用UNIX_TIMESTAMP()函數直接將時間類型轉換成時間戳。對于DATE類型的時間,UNIX_TIMESTAMP()函數會將其當成當天的00:00:00;對于DATETIME類型的時間,UNIX_TIMESTAMP()函數會將其轉換成時間戳。
SELECT UNIX_TIMESTAMP('2022-01-01'); SELECT UNIX_TIMESTAMP('2022-01-01 12:00:00');
上述代碼分別將日期類型時間'2022-01-01'和日期時間類型時間'2022-01-01 12:00:00'轉換成時間戳,結果分別為:"1640985600"和"1641028800"。
當然,除了MySQL自帶的函數,我們還可以使用PHP的時間函數和其他編程語言的時間函數將時間轉換成時間戳。