MySQL STR_TO_DATE()函数

简介:在本教程中,我们将向您展示如何使用MySQL STR_TO_DATE()函数将字符串转换为日期时间值。

MySQL STR_TO_DATE函数简介

下面说明了STR_TO_DATE()函数的语法:

STR_TO_DATE(str,fmt);

STR_TO_DATE()根据fmt格式字符串将str字符串转换为日期值。
STR_TO_DATE()函数可以基于输入和格式字符串返回DATE,TIME或DATETIME值。
如果输入字符串非法,则STR_TO_DATE()函数将返回NULL。

STR_TO_DATE()函数扫描输入字符串以匹配格式字符串。
格式字符串可以包含文字字符和以百分比(%)字符开头的格式说明符。
签出DATE_FORMAT函数以获取格式说明符列表。

STR_TO_DATE()函数在涉及从外部格式到MySQL时间数据格式的时间数据转换的数据迁移中非常有用。

MySQL STR_TO_DATE示例

我们来看一些使用STR_TO_DATE()函数将字符串转换为日期和/或时间值的示例

以下语句将字符串转换为DATE值。

SELECT STR_TO_DATE('21,5,2013','%d,%m,%Y');

基于格式字符串"%d,%m,%Y",STR_TO_DATE()函数扫描" 21,5,2013"​​输入字符串。

  • 首先,它尝试在输入字符串中找到%d格式说明符的匹配项,该匹配项是月份中的一天(01…31)。
    因为数字21与%d指定符匹配,所以该函数将21作为日期值。

  • 其次,由于格式字符串中的逗号(,)文字字符与输入字符串中的逗号匹配,因此该函数继续检查第二个格式说明符%m,它是一个月(01…12),并发现该数字5与%m格式说明符匹配。
    它以数字5作为月份值。

  • 第三,在匹配第二个逗号(,)之后,STR_TO_DATE()函数继续查找第三格式说明符%Y的匹配项,该年份是四位数的年份,例如2012、2013等,并且将数字2013作为年值。

当STR_TO_DATE()函数根据格式字符串解析输入字符串时,它会忽略输入字符串末尾的多余字符。
请参见以下示例:

SELECT STR_TO_DATE('21,5,2013 extra characters','%d,%m,%Y');

STR_TO_DATE()将输入字符串未提供的所有不完整日期值设置为零。
请参见以下示例:

SELECT STR_TO_DATE('2013','%Y');

因为输入字符串仅提供年份值,所以STR_TO_DATE()函数返回的日期值将月份和日期设置为零。

下面的示例将时间字符串转换为TIME值:

SELECT STR_TO_DATE('113005','%h%i%s');

类似于未指定的日期部分,STR_TO_DATE()函数将未指定的时间部分设置为零,请参见以下示例:

SELECT STR_TO_DATE('11','%h');

下面的示例将字符串转换为DATETIME值,因为输入字符串同时提供了日期和时间部分。

SELECT STR_TO_DATE('20130101 1130','%Y%m%d %h%i') ;

在本教程中,我们向您展示了使用MySQL STR_TO_DATE()函数将字符串转换为日期和时间值的各种示例。

日期:2019-11-20 08:52:23 来源:oir作者:oir