在 MySQL 中将字符串转换为日期格式

本文将指导你并通过不同的函数将充当 DATE 的字符串类型值转换为 DATE 类型值。我们还将练习使用 MySQL 中的 STR_TO_DATE()CONVERT()CAST() 函数的一些示例代码。

注意
我们使用的是 MySQL V8.0.27。你可以从这里获得较新的(如果有的话)

在 MySQL 中将字符串转换为日期格式

我们将学习以下在 MySQL 中将字符串转换为 DATE 格式的方法。

MySQL STR_TO_DATE() 函数

此函数将 str(字符串)转换为 DATE 值。DATE 的格式将根据你的字符串格式。例如,你想将 MM/DD/YYYY 从字符串类型转换为 DATE 类型,那么 DATE 也将是 MM/DD/YYYY 格式。

STR_TO_DATE() 函数可以根据输入以及字符串格式返回 DATEDATETIMETIME 值。请参阅下面给出的示例并将它们与输出进行比较。

SELECTSTR_TO_DATE('2021-08-23','%Y-%m-%d');

输出:

在 MySQL 中将字符串转换为日期格式

如果我们改变格式怎么办?让我们用逗号替换破折号。

SELECTSTR_TO_DATE('2021-08-23','%Y,%m,%d');

输出:

在 MySQL 中将字符串转换为日期格式

参见上面给出的输出,它返回 NULL。让我们仅将格式从 YYYY-MM-DD 更改为 DD-MM-YYYY

SELECTSTR_TO_DATE('2021-08-23','%d-%m-%Y');

输出:

在 MySQL 中将字符串转换为日期格式

看,它又返回了 NULL。这意味着你必须具有与输入字符串中相同的 DATE 格式。如果我们也有 TIME 怎么办?让我们运行以下命令。

SELECTSTR_TO_DATE('2021-08-23 10:12:23','%Y-%m-%d %T');

输出:

在 MySQL 中将字符串转换为日期格式

STR_TO_DATE() 函数将忽略文本并仅输出 DATE。请参阅以下示例。

SELECTSTR_TO_DATE('2021-08-23 some other string','%Y-%m-%d')asDate;

输出:

在 MySQL 中将字符串转换为日期格式

我们也可以提取年份。如果你提取年份,它会将日期和月份设置为零。请参阅以下代码和输出。

SELECTSTR_TO_DATE('2021-08-23','%Y')asYear;#getyear

输出:

在 MySQL 中将字符串转换为日期格式

MySQL CONVERT() 函数

Convert 函数可以将给定的值转换为指定的字符集或数据类型。你可以在此处查看有关数据类型的详细信息。

SELECTCONVERT("2021-08-19",DATE);#converttoDATESELECTCONVERT("2021-08-19",DATETIME);#converttoDATETIMESELECTCONVERT("2021-08-19",TIME);#converttoTIME

输出:

在 MySQL 中将字符串转换为日期格式

MySQL CAST() 函数

此函数将任何类型的输入(可以是字符串、整数或其他)转换为任何指定的数据类型。你可以在此处详细查看参数值。

SELECTCAST("2021-08-29"ASDATE)asdate;#converttodatetypeSELECTCAST("2021-08-29 11:12:45"ASDATETIME)asdatetime;#converttodatetimetypeSELECTCAST("11:12:45"ASTIME)astime;#converttotimetype

输出:

在 MySQL 中将字符串转换为日期格式

结论

我们得出的结论是,根据项目要求,可以有多种方法将字符串值转换为 DATETIMEDATETIME。我们了解了用于转换目的的 STR_TO_DATECONVERTCAST 函数。