我正在尝试将带有时间的日期字符串(存储在 varchar 字段中)转换为日期格式。当前字符串的格式如下:December 23, 2010 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。
我的做法是否错误?
最佳答案
正确的格式是这样的:
SELECT STR_TO_DATE(fieldname, '%M %e, %Y') AS newdate FROM tablename;
地点:
%M
是月份名称(一月..十二月)%e
是一月中的第几天,数字 0..31%Y
是年份
关于mysql - 将 MySQL 文本字符串与时间转换为日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22389592/