MySQL STR_TO_DATE返回null

时间:2017-01-11 19:49:54

标签: mysql

我正在尝试使用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')

同样的结果,虽然这次我没有收到警告信息。

1 个答案:

答案 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)