转换MySQL文本字符串与时间的关系

时间:2014-03-13 19:59:22

标签: mysql date str-to-date

我正在尝试将日期字符串与时间(存储在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。

我接近这个错误吗?

1 个答案:

答案 0 :(得分:1)

正确的格式是:

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

其中:

  • %M是月份名称(1月〜12月)
  • %e是该月的日期,数字0..31
  • %Y是年份