我有一个关于mysql的每周时间表,其中我使用内置的ORDER BY
函数按时间对活动进行排序:ORDER BY time
。
00:01
07:00
08:00
11:00
23:00
07:00
08:00
11:00
23:00
00:01
01:00
04:00
等,直到07:00(例如,模数7 am.m。)。
如何更改格式?
答案 0 :(得分:1)
看起来你想要的旋转时间是早上7点到早上6点59分。您可以根据时间是否早于早上7点进行订单,强制预先排序为2 ...如果早上7点或之后,预排序为1,则按自然时间排序...
order by
case when hour( columnTime ) < 7 then 2 else 1 end,
columntime
这样,如果您的时间样本是
00:01a
02:27a
05:42a
06:59a
07:00a
10:29a
02:27p
11:59p
预测将导致......
PRESORT Time
1 07:00a
1 10:29a
1 02:27p
1 11:59p
2 00:01a
2 02:27a
2 05:42a
2 06:59a
通过SQLFiddle adjusted更新。函数HOUR()返回日期/时间列的数字。你有HOURS()。现在,函数的参数是包含日期/时间字段的列的名称。我没有你的表结构来知道列名,所以我只称它为“columnTime”。根据您的SQLFiddle示例,我将其更改为...
HOUR(小时)&lt; - HOUR()函数,使用表格中的“小时”列
答案 1 :(得分:0)