Mysql 按整数值按小时排序
我正在使用MYSQL 5.6,我有以下整数值:Mysql 按整数值按小时排序,mysql,Mysql,我正在使用MYSQL 5.6,我有以下整数值: 1. 2. 3. 21 22 23 0 希望按小时排序,并希望以以下格式显示我的结果: 3. 2. 1. 0 23 22 21 将0更改为24: SELECT Quantity, SEC_TO_TIME(Quantity*60*60) as TimeFormat, CASE WHEN SEC_TO_TIME(Quantity*60*60) BETWEEN '01:00:00' AND '12:00:00' THEN 'AM' ELSE '
1.
2.
3.
21
22
23
0
希望按小时排序,并希望以以下格式显示我的结果:
3.
2.
1.
0
23
22
21
将0更改为24:
SELECT
Quantity,
SEC_TO_TIME(Quantity*60*60) as TimeFormat,
CASE WHEN SEC_TO_TIME(Quantity*60*60) BETWEEN '01:00:00' AND '12:00:00' THEN 'AM' ELSE 'PM' END AS AMPM
FROM your_table
ORDER BY AMPM ASC, TimeFormat DESC
数量:包含整数值的列我将使用一个新表为您维护排序。然后,它可以由非程序员维护,而非程序员可能会改变对业务规则的看法。您可以轻松创建维护此表的web表单
# table sorter
hour sortOrder
---- ----------
0 10
1 0
2 8
3 7
4 6
5 5
6 4
7 3
8 2
9 1
10 11
11 12
12 13
13 14
14 15
15 16
16 17
17 18
18 19
19 20
20 21
21 22
22 23
23 24
你原来的桌子
# table things
data hour
---- -------
'something' 2
'something else' 4
然后用SQL连接这个表
select * from things t
join sorter s
on t.hour = s.hour
order by s.sortOrder
那到底是什么格式?12和13在哪里合适?为什么不
23、22、21、3、2、1、0
?12和13属于PM部分。它的正常时间值从0到23。要显示当前时间的历史(3):如21,22,23,00,1,2,3,如果没有相关的日期值,我认为这是不可能的。