在 MySQL 中將字串轉換為日期格式
本文將指導你並通過不同的函式將充當 DATE
的字串型別值轉換為 DATE
型別值。我們還將練習使用 MySQL 中的 STR_TO_DATE()
、CONVERT()
和 CAST()
函式的一些示例程式碼。
在 MySQL 中將字串轉換為日期格式
我們將學習以下在 MySQL 中將字串轉換為 DATE
格式的方法。
MySQL STR_TO_DATE()
函式
此函式將 str
(字串)轉換為 DATE
值。DATE
的格式將根據你的字串格式。例如,你想將 MM/DD/YYYY
從字串型別轉換為 DATE
型別,那麼 DATE
也將是 MM/DD/YYYY
格式。
STR_TO_DATE()
函式可以根據輸入以及字串格式返回 DATE
、DATETIME
或 TIME
值。請參閱下面給出的示例並將它們與輸出進行比較。
SELECT STR_TO_DATE('2021-08-23', '%Y-%m-%d');
輸出:
如果我們改變格式怎麼辦?讓我們用逗號替換破折號。
SELECT STR_TO_DATE('2021-08-23', '%Y,%m,%d');
輸出:
參見上面給出的輸出,它返回 NULL
。讓我們僅將格式從 YYYY-MM-DD
更改為 DD-MM-YYYY
。
SELECT STR_TO_DATE('2021-08-23', '%d-%m-%Y');
輸出:
看,它又返回了 NULL
。這意味著你必須具有與輸入字串中相同的 DATE
格式。如果我們也有 TIME
怎麼辦?讓我們執行以下命令。
SELECT STR_TO_DATE('2021-08-23 10:12:23', '%Y-%m-%d %T');
輸出:
STR_TO_DATE()
函式將忽略文字並僅輸出 DATE
。請參閱以下示例。
SELECT STR_TO_DATE('2021-08-23 some other string', '%Y-%m-%d') as Date;
輸出:
我們也可以提取年份。如果你提取年份,它會將日期和月份設定為零。請參閱以下程式碼和輸出。
SELECT STR_TO_DATE('2021-08-23', '%Y') as Year; #get year
輸出:
MySQL CONVERT()
函式
Convert
函式可以將給定的值轉換為指定的字符集或資料型別。你可以在此處檢視有關資料型別的詳細資訊。
SELECT CONVERT("2021-08-19", DATE); #convert to DATE
SELECT CONVERT("2021-08-19", DATETIME); #convert to DATETIME
SELECT CONVERT("2021-08-19", TIME); #convert to TIME
輸出:
MySQL CAST()
函式
此函式將任何型別的輸入(可以是字串、整數或其他)轉換為任何指定的資料型別。你可以在此處詳細檢視引數值。
SELECT CAST("2021-08-29" AS DATE) as date; #convert to date type
SELECT CAST("2021-08-29 11:12:45" AS DATETIME) as datetime; #convert to datetime type
SELECT CAST("11:12:45" AS TIME) as time; #convert to time type
輸出:
まとめ
我們得出的結論是,根據專案要求,可以有多種方法將字串值轉換為 DATE
、TIME
和 DATETIME
。我們瞭解了用於轉換目的的 STR_TO_DATE
、CONVERT
和 CAST
函式。