我已将数据存储在我的表格中。我想将名为new_meeting_time
的列排序为varchar。我有一个查询SELECT * FROM table_name ORDER BY new_meeting_time ASC
并给我以下输出:
1. 17-03-2016 01:26 PM
2. 17-03-2016 01:31 PM
3. 17-03-2016 01:34 PM
4. 17-03-2016 01:44 PM
5. 17-03-2016 10:33 AM
但我希望按以下顺序获取数据:
1. 17-03-2016 10:33 AM
2. 17-03-2016 01:26 PM
3. 17-03-2016 01:31 PM
4. 17-03-2016 01:34 PM
5. 17-03-2016 01:44 PM
我该怎么做?
答案 0 :(得分:5)
以适当的格式存储您的数据,日期时间。
其他答案的解决方案在性能上非常糟糕。
数据库是一种很好的机制。一个人应该正确使用它。如果你问如何利用马来驾驶汽车,那么正确的答案是"购买汽油"。
答案 1 :(得分:0)
SELECT *
FROM table_name
ORDER BY STR_TO_DATE(new_meeting_time, '%d-%m-%Y %h:%i:%s') ASC
答案 2 :(得分:0)
使用STR_TO_DATE
尝试此操作。
SELECT * FROM table_name ORDER BY STR_TO_DATE(new_meeting_time,'%d-%m-%Y %h:%i %p');
演示此功能的效果:
mysql> select STR_TO_DATE('17-03-2016 01:26 PM','%d-%m-%Y %h:%i %p');
+--------------------------------------------------------+
| STR_TO_DATE('17-03-2016 01:26 PM','%d-%m-%Y %h:%i %p') |
+--------------------------------------------------------+
| 2016-03-17 13:26:00 |
+--------------------------------------------------------+
1 row in set (0.00 sec)