首页 > 解决方案 > SQL 按 2 个条件排序

问题描述

假设我有一个数据库,看起来像这样:

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

我试图写一个简单的查询,但它不能考虑2个条件,一个接一个:

SELECT price, date, hour
FROM table
WHERE date BETWEEN '2018-12-04' AND '2018-12-11'
ORDER BY date, hour

任何人都可以帮助解决这个问题吗?

谢谢大家!

标签: mysqlsqldateselect

解决方案


我能想到的唯一真正的问题是是否hour存储为字符串。如果是这样,请使用隐式转换:

SELECT price, date, hour
FROM table
WHERE date BETWEEN '2018-12-04' AND '2018-12-11'
ORDER BY date, hour + 0;

推荐阅读