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