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()函数将字符串转换为日期和时间值的各种示例。