在 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 函式。
