如何格式化mysql中的日期字段?

时间:2012-01-12 17:35:13

标签: php mysql sql

我在mysql查询中遇到问题,我将日期保存在数据库中,格式为:

  

2011年10月26日星期三01:25:35美国东部时间

我想按日期对行进行排序,但这种日期格式不允许我这样做。我已尝试Date_FORMATSTR_TO_DATE功能,但无法使其正常工作,请您帮我解决一下?

2 个答案:

答案 0 :(得分:0)

这种格式只是MySQL的纯文本,你应该有另一个格式datetimetimestamp具有相同的数据,但MySQL可以理解。

  1. 添加新列
  2. 将PHP用于strtotime您的实际行,并将该值复制到新列。
  3. ...
  4. 的利润!

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