我在mysql查询中遇到问题,我将日期保存在数据库中,格式为:
2011年10月26日星期三01:25:35美国东部时间
我想按日期对行进行排序,但这种日期格式不允许我这样做。我已尝试Date_FORMAT
和STR_TO_DATE
功能,但无法使其正常工作,请您帮我解决一下?
答案 0 :(得分:0)
这种格式只是MySQL的纯文本,你应该有另一个格式datetime
或timestamp
具有相同的数据,但MySQL可以理解。
strtotime
您的实际行,并将该值复制到新列。答案 1 :(得分:0)
假设您已修改了表格,因此您已获得原始日期字段('olddate')并希望将重新格式化的“本机”日期放入新字段('newdate'),则:
UPDATE yourtable
SET newdate = STR_TO_DATE(olddate, '%a, %e %b %Y %H:%i:%s')
但是,MySQL不会在其日期/时间字段中存储时区信息,因此您必须将EDT内容转换为所需的TZ(UTC?)。
转换为原生格式后,您可以使用以下方式进行排序:
SELECT ...
...
ORDER BY YEAR(newdate)