我正在尝试使用STR_TO_DATE函数将格式为mm / dd / yyyy的日期转换为标准日期格式yyyy-mm-dd。我的日期列中的某些字段为空,有些字段包含日期。
例如,2011年8月22日应该成为2011-8-22。
当我选择我的日期列时,它看起来像这样: 2011年8月22日 8/10/2010 2012年5月12日 等
我尝试使用代码
UPDATE table SET date = STR_TO_DATE(date, '%m/%d/%Y')
用NULL值填充列。也尝试了
UPDATE table SET date = STR_TO_DATE(@date, '%m/%d/%Y')
同样的结果,虽然这次我没有收到警告信息。
答案 0 :(得分:0)
第一个是正确的:
UPDATE table SET date = STR_TO_DATE(date, '%m/%d/%Y')
但如果日期无效(不是%m /%d /%Y格式),则返回NULL
尝试执行然后显示警告。它告诉你出了什么问题:
UPDATE table SET date = STR_TO_DATE(date, '%m/%d/%Y');
SHOW WARNINGS;
也许有些日期的格式不是%m /%d /%Y(明显是%d /%m /%Y)