我的数据库中有一个个性化的时间值,如下所示:下午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)
来源于MySQL:按时间排序(MM:SS)?
ORDER BY hora+0
是您的问题。你正在计算你的时间值,并试图对它们进行算术加法运算。这破坏了存储时间的固有"时间"类型,并将其转换为一个严重损坏的整数:
mysql> select curtime(), curtime()+0;
+-----------+---------------+
| curtime() | curtime()+0 |
+-----------+---------------+
| 10:16:19 | 101619.000000 |
+-----------+---------------+
只尝试ORDER BY hora
,不添加。