首页 > 解决方案 > mysql 将字符串转换为日期时间格式

问题描述

在 MySQL 中试图将字符串转换为日期时间格式,但它返回 null 值。

将以下字符串转换为日期时间格式的正确方法是什么?

> select STR_TO_DATE('8/16/18 7:00 PM', '%c/%e/%Y %r');
+-------------------------------------------------+
| STR_TO_DATE('8/16/18 7:00 PM', '%c/%e/%Y %r')   |
+-------------------------------------------------+
| NULL                                            |
+-------------------------------------------------+

谢谢

标签: mysql

解决方案


你必须匹配格式,%r 不匹配 7:00 PM

来自:https ://www.w3schools.com/sql/func_mysql_str_to_date.asp

%r = Time in 12 hour AM or PM format (hh:mm:ss AM/PM)

如您所见,需要两位数的小时和秒,而您没有。

您也不匹配 %Y 期望四位数年份的年份...所以我将其更改为 %y

像这样试试。

select STR_TO_DATE('8/16/18 7:00 PM', '%c/%e/%y %l:%i %p');

推荐阅读