Skip to content

TO_DATE()

函数说明

TO_DATE() 函数按照指定日期或时间显示格式,将字符串转换为日期或日期时间类型,与 STR_TO_DATE() 同义。

格式字符串可以包含文字字符和以%开头的格式说明符。format 中的字面字符与格式说明符必须与 str 匹配,如果不能按照 format 解析 str 或者其中任何一个参数为 NULL,TO_DATE 函数将返回 NULL。

有关可以使用的格式说明符,请参阅 DATE_FORMATE() 函数描述。

函数语法

> TO_DATE(str,format)

参数释义

参数 说明
str 要格式化为日期的字符串 (输入字符串)
format 要使用的格式字符串

示例

mysql> SELECT 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 TO_DATE('2022/11/01','%Y/%m/%d');
+-------------------------------+
| to_date(2022/11/01, %Y/%m/%d) |
+-------------------------------+
| 2022-11-01                    |
+-------------------------

-- format 参数支持表达式
mysql> SELECT 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.01 sec)

--TO_DATE 函数在根据格式字符串 format 解析输入字符串 str 时,忽略输入字符串 str 末尾的额外字符
mysql> SELECT TO_DATE('25,5,2022 extra characters','%d,%m,%Y'); 
+-----------------------------------------------+
| to_date(25,5,2022 extra characters, %d,%m,%Y) |
+-----------------------------------------------+
| 2022-05-25                                    |
+-----------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT TO_DATE('2022','%Y');
+-------------------+
| to_date(2022, %Y) |
+-------------------+
| NULL              |
+-------------------+
1 row in set (0.00 sec)