假设我有一个数据库,看起来像这样:
price date hour
12.00 2018-12-11 5
13.00 2018-12-04 2
14.00 2018-12-06 1
15.00 2018-12-11 1
16.00 2018-12-04 6
17.00 2018-12-06 10
我需要按日期排序,如果小时后的几天相同,那么结果应该是:
price date hour
13.00 2018-12-04 2
16.00 2018-12-04 6
14.00 2018-12-06 1
17.00 2018-12-06 10
15.00 2018-12-11 1
12.00 2018-12-11 5
我试图编写一个简单的查询,但是它不能考虑两个条件,一个接一个:
SELECT price, date, hour
FROM table
WHERE date BETWEEN '2018-12-04' AND '2018-12-11'
ORDER BY date, hour
有人可以帮助解决这个问题吗?
谢谢所有!
答案 0 :(得分:2)
我能想到的唯一真正的问题是,hour
是否存储为字符串。如果是这样,请使用隐式转换:
SELECT price, date, hour
FROM table
WHERE date BETWEEN '2018-12-04' AND '2018-12-11'
ORDER BY date, hour + 0;
答案 1 :(得分:0)
一个简单的ORDER BY
就足够了:
select * from my_table order by `date`, hour;
请注意,date
通常是保留字,因此不鼓励使用它,并且需要用引号引起来。