0

我的数据库中有一个个性化的时间值,如下所示:下午 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

有什么帮助吗?

提前致谢

4

2 回答 2

1

试试看,

SELECT * FROM table ORDER BY str_to_date(meta_time,'%l:%i')

您可以在MySQL网站上找到特定的格式化程序。

例如:

%k -> Hour (0..23) %l -> Hour (1..12)

来自MySQL 的来源:按时间排序 (MM:SS)?

于 2013-07-10T16:16:50.087 回答
0

ORDER BY hora+0是你的问题。您正在获取时间值,并尝试对它们进行算术加法。这会破坏存储时间的固有“时间”类型并将其转换为严重损坏的整数:

mysql> select curtime(), curtime()+0;
+-----------+---------------+
| curtime() | curtime()+0   |
+-----------+---------------+
| 10:16:19  | 101619.000000 |
+-----------+---------------+

尝试只是ORDER BY hora添加。

于 2013-07-10T16:17:23.523 回答