MySQL數(shù)據(jù)庫中存儲日期和時間的數(shù)據(jù)類型有多種,其中最常用的是DATETIME類型。該類型的格式為:YYYY-MM-DD HH:MM:SS,其中YYYY表示年份,MM表示月份,DD表示日期,HH表示小時,MM表示分鐘,SS表示秒數(shù)。
在MySQL中,經(jīng)常需要將一個字符串轉(zhuǎn)換為DATETIME類型。這可以通過使用STR_TO_DATE()函數(shù)來實現(xiàn)。該函數(shù)接受兩個參數(shù),第一個參數(shù)是需要進行轉(zhuǎn)換的字符串,第二個參數(shù)是轉(zhuǎn)換后的日期格式。例如:
SELECT STR_TO_DATE('2022-05-01 10:15:30', '%Y-%m-%d %H:%i:%s');
其中,'%Y-%m-%d %H:%i:%s'表示DATETIME的格式。在這個格式字符串中,%Y表示年份,%m表示月份,%d表示日期,%H表示小時,%i表示分鐘,%s表示秒數(shù)。
除了STR_TO_DATE()函數(shù)之外,還有許多其他的函數(shù)可以用來轉(zhuǎn)換字符串為DATETIME類型。例如,如果需要將UNIX時間戳轉(zhuǎn)換為DATETIME類型,可以使用UNIX_TIMESTAMP()和FROM_UNIXTIME()函數(shù):
-- 將當(dāng)前時間轉(zhuǎn)換為UNIX時間戳: SELECT UNIX_TIMESTAMP(NOW()); -- 將UNIX時間戳轉(zhuǎn)換為DATETIME: SELECT FROM_UNIXTIME(1651305130);
需要注意的是,MySQL中的DATETIME類型是有限制的。它只能表示從1000年到9999年之間的日期和時間,且最小單位為一秒。如果需要存儲更早的日期或更精確的時間信息,可以考慮使用其他類型,如TIMESTAMP類型。