小时智能排序整数值

时间:2016-02-10 14:42:06

标签: php mysql mysqli

我正在研究MYSQL 5.6,我有以下整数值:

1 2 3 21 22 23 0

想要按小时排序,并希望以这种格式显示我的结果:

3 2 1 0 23 22 21

2 个答案:

答案 0 :(得分:0)

将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

数量:包含整数值的列

答案 1 :(得分:0)

我会使用一个维护排序的新表。然后可以由非程序员维护,他们可能会改变他们对业务规则的看法。您可以轻松创建维护此表的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