0

我正在尝试将带有时间的日期字符串(存储在 varchar 字段中)转换为日期格式。当前字符串的格式如下:2010 年 12 月 23 日 13:57

我需要将它们转换为没有时间的标准日期格式:2010-12-23

我尝试了以下方法,但结果为 NULL:

SELECT STR_TO_DATE(fieldname, '%Y-%m-%d') AS newdate FROM tablename;

接下来,我想也许我必须从字符串中去掉时间,所以我尝试了:

SELECT STR_TO_DATE(SUBSTRING(fieldname, 1, CHAR_LENGTH(fieldname) - 6), '%Y-%m-%d') AS newdate FROM tablename;

并且结果也为NULL。

我是在错误地接近这个吗?

4

1 回答 1

1

正确的格式是这样的:

SELECT STR_TO_DATE(fieldname, '%M %e, %Y') AS newdate FROM tablename;

在哪里:

  • %M是月份名称(January..December)
  • %e是一个月中的哪一天,数字 0..31
  • %Y是年
于 2014-03-13T20:03:23.390 回答