SQL每天销售的商品为一个时间范围

时间:2017-03-02 12:46:56

标签: mysql sql

如何编写一个查询,该查询将返回每天创建的订单一段时间让我说(根据我提供的示例代码) 2016-02-01 - 2016-02-28 < / strong>即可。结果我希望包括此范围的所有日期,包括没有创建订单的日期(day_with_no_order将返回零作为行结果)。我面临的问题是如何指定这个日计数范围。我正在使用MySQL,但这应该是一个非特定于供应商的一般问题。

DROP TABLE IF EXISTS orders;
CREATE TABLE orders ( id INT NOT NULL, date_created DATE NOT NULL, items_quantity INT NOT NULL );
INSERT INTO orders VALUES 
(1, STR_TO_DATE('2016-02-03','%Y-%m-%d'), 1), 
(2, STR_TO_DATE('2016-02-04','%Y-%m-%d'), 2), 
(3, STR_TO_DATE('2016-02-05','%Y-%m-%d'), 3),
(4, STR_TO_DATE('2016-02-05','%Y-%m-%d'), 1), 
(5, STR_TO_DATE('2016-02-10','%Y-%m-%d'), 2), 
(6, STR_TO_DATE('2016-02-12','%Y-%m-%d'), 3), 
(7, STR_TO_DATE('2016-02-19','%Y-%m-%d'), 1), 
(8, STR_TO_DATE('2016-02-19','%Y-%m-%d'), 2), 
(9, STR_TO_DATE('2016-02-21','%Y-%m-%d'), 3);

1 个答案:

答案 0 :(得分:0)

SELECT *
FROM ORDERS
WHERE date_created > to_date(dd-mon-yyyy, 01-02-2017)
AND date_created < to_date(dd-mon-yyyy, 01-03-2017);

或者您的意思是总计每天的订单数量?例如,你想输出如下:

03/02/2017 1

04/02/2017 2

05/02/2017 4