【问题标题】:STR_TO_DATE() function of MySQLMySQL的STR_TO_DATE()函数
【发布时间】:2012-09-07 11:30:55
【问题描述】:

我有这种格式的日期5 Mar 1985 0:00 存储在表中为VARCHAR
我想把它转换成Datetime,我用的是STR_TO_DATE(),如下:

SELECT STR_TO_DATE(birth_date, '%d %m %Y %h:%i') FROM student WHERE pk = 29

但它返回NULL

【问题讨论】:

  • 您应该使用 MySQL 的标准日期格式,而不是您自己的自定义格式。如果你这样做了,你就不必担心这个了。
  • 我实际上已经将值存储在表中(birth_date varchar 100)我需要将其转换为日期时间。

标签: mysql date string-to-datetime


【解决方案1】:

试试这种格式——例如'%e %b %Y %k:%i'——

SELECT STR_TO_DATE('5 Mar 1985 2:33', '%e %b %Y %k:%i') dt;
+---------------------+
| dt                  |
+---------------------+
| 1985-03-05 02:33:00 |
+---------------------+

【讨论】:

【解决方案2】:

改用STR_TO_DATE(birth_date, '%d %M %Y %h:%i')

%m = 整数月份 %M = 字符串中的月份(例如:Mar)

【讨论】:

  • 可能是因为日期格式无效?它应该是“1985 年 3 月 5 日 00:00”。试试看:STR_TO_DATE(birth_date, '%d %M %Y 0%h:%i')
  • 发现这个工作 STR_TO_DATE(birth_date, '%d %b %Y %i:%s')
猜你喜欢
  • 2016-01-09
  • 1970-01-01
  • 2020-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-05
相关资源
最近更新 更多