STR_TO_DATE()
函数说明
STR_TO_DATE()
函数按照指定日期或时间显示格式,将字符串转换为日期或日期时间类型,与 TO_DATE()
同义。
格式字符串可以包含文字字符和以%开头的格式说明符。format 中的字面字符与格式说明符必须与 str 匹配,支持表达式。如果不能按照 format 解析 str 或者其中任何一个参数为 NULL,STR_TO_DATE
函数将返回 NULL。
有关可以使用的格式说明符,请参阅 DATE_FORMAT()
函数描述。
函数语法
> STR_TO_DATE(str,format)
参数释义
参数 | 说明 |
---|---|
str | 要格式化为日期的字符串 (输入字符串) |
format | 要使用的格式字符串 |
示例
mysql> SELECT STR_TO_DATE('2022-01-06 10:20:30','%Y-%m-%d %H:%i:%s') as result;
+---------------------+
| result |
+---------------------+
| 2022-01-06 10:20:30 |
+---------------------+
1 row in set (0.00 sec)
mysql> SELECT STR_TO_DATE('09:30:17','%h:%i:%s');
+---------------------------------+
| str_to_date(09:30:17, %h:%i:%s) |
+---------------------------------+
| 09:30:17 |
+---------------------------------+
1 row in set (0.00 sec)
-- format 参数支持表达式
mysql> SELECT str_to_date('2008-01-01',replace('yyyy-MM-dd','yyyy-MM-dd','%Y-%m-%d')) as result;
+------------+
| result |
+------------+
| 2008-01-01 |
+------------+
1 row in set (0.00 sec)
--STR_TO_DATE 函数在根据格式字符串 format 解析输入字符串 str 时,忽略输入字符串 str 末尾的额外字符
mysql> SELECT STR_TO_DATE('25,5,2022 extra characters','%d,%m,%Y');
+---------------------------------------------------+
| str_to_date(25,5,2022 extra characters, %d,%m,%Y) |
+---------------------------------------------------+
| 2022-05-25 |
+---------------------------------------------------+
1 row in set (0.00 sec)
mysql> SELECT STR_TO_DATE('2022','%Y');
+-----------------------+
| str_to_date(2022, %Y) |
+-----------------------+
| NULL |
+-----------------------