MySQL按字符串字段排序为日期

时间:2014-11-18 12:20:43

标签: mysql

我面临以下问题:我有一个数据库,以用户名,somedata,date的形式保存数据。

不幸的是,'date'字段是一个字符串字段,它保存来自例如表单中的javascript代码的日期。 “Sun Nov 09 2014 18:34:39 GMT + 0530(IST)”

我需要按时间顺序导出一个包含数据的文件,因为数据很大我当然不能手动排序,我需要通过mysql来完成。

现在,我使用下面的代码,但是没有达到我需要的代码

 SELECT *
 FROM log
 ORDER BY STR_TO_DATE(date, '%d/%m/%Y'),username 
 INTO OUTFILE '/tmp/file8'
 FIELDS ENCLOSED BY '"' TERMINATED BY ';' ESCAPED BY '"'
 LINES TERMINATED BY '\r\n';

有什么想法吗?感谢。

1 个答案:

答案 0 :(得分:0)

由于日期以Sun Nov 09 2014 18:34:39 GMT+0530 (IST)

格式存储 您正在使用的

str_to_date将返回null

mysql> select STR_TO_DATE('Sun Nov 09 2014 18:34:39 GMT+0530 (IST)', '%d/%m/%Y') as date;
+------+
| date |
+------+
| NULL |
+------+

格式正确

mysql> select str_to_date('Sun Nov 09 2014 18:34:39 GMT+0530 (IST)','%a %b %d %Y %H:%i:%s') as date ;
+---------------------+
| date                |
+---------------------+
| 2014-11-09 18:34:39 |
+---------------------+

您需要提供此处列出的正确日期格式设置参数 http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format