Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 按整数值按小时排序_Mysql - Fatal编程技术网

Mysql 按整数值按小时排序

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 '

我正在使用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 '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,如果没有相关的日期值,我认为这是不可能的。