不久前,我雇了一个自由职业者来解析一个有日期时间字段的网站。在自由职业者完成后不久,我不得不把这个项目放在次要位置,现在我又回到了这个项目中,当我进入MySQL数据库时,我注意到了一些问题。
具体来说,有两种不同的日期时间格式,我不知道如何将它们更新为统一的MySQL可排序日期时间字段
Apr 8 - 2:23 AM <- for current year updates
Tue, Dec 2, 2014 06:06:00 PM <- for all previous year updates
2014-12-02 06:06:00PM <- desired format我在表中有一个唯一的id,所以我可以很容易地选择和更新格式。例如,所有的“4月8-2:23上午”格式都是< '6340‘。我还创建了一个"date_proper“列来更新当前日期列。
我只是无法在我的一生中找到正确的代码来将不同的格式更新成相同的统一格式。任何帮助都将不胜感激。
发布于 2015-04-19 11:59:30
为此,您需要使用str_to_date()。首先,修复date_proper列,使其成为一个datetime。格式应在输入和输出时处理。日期的适当存储是使用本机格式:
alter table modify date_proper datetime;然后,您可以更新以下值:
update t
date_proper = (case when format < '6340'
then str_to_date(concat(year(now), ' ', col), '%Y %b %d - %h:%i %p'
else str_to_date(substr(col, 5), '%b %d, %Y %h:%i:%s %p'
end);https://stackoverflow.com/questions/29729479
复制相似问题