我的数据库中有一个个性化的时间值,如下所示:下午 3:35(它从不以零开头),我需要按时间 asc 排序,我试过:
SELECT * FROM mytable WHERE(mydate=\"$thedate\") ORDER BY hora+0
我明白了:
下午 3:35 下午
3:00 下午
3:12
但我预料到:
下午 3:00 下午
3:12 下午
3:35
有什么帮助吗?
提前致谢
试试看,
SELECT * FROM table ORDER BY str_to_date(meta_time,'%l:%i')
您可以在MySQL网站上找到特定的格式化程序。
例如:
%k -> Hour (0..23) %l -> Hour (1..12)
ORDER BY hora+0
是你的问题。您正在获取时间值,并尝试对它们进行算术加法。这会破坏存储时间的固有“时间”类型并将其转换为严重损坏的整数:
mysql> select curtime(), curtime()+0;
+-----------+---------------+
| curtime() | curtime()+0 |
+-----------+---------------+
| 10:16:19 | 101619.000000 |
+-----------+---------------+
尝试只是ORDER BY hora
,不添加。