我正在尝试将日期字符串与时间(存储在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。
我接近这个错误吗?
答案 0 :(得分:1)
正确的格式是:
SELECT STR_TO_DATE(fieldname, '%M %e, %Y') AS newdate FROM tablename;
其中:
%M
是月份名称(1月〜12月)%e
是该月的日期,数字0..31 %Y
是年份