Referencia: https://blog.csdn.net/jie11447416/article/details/50887888
1, las tablas de fecha
CREATE TABLE `my_date` (
` date` NULL Fecha DEFAULT
) ENGINE = InnoDB DEFAULT CHARSET = utf8;
2, tabla de números
CREAR num TABLA (int i); - para crear una tabla para almacenar los números 0-9
INSERT INTO num (i) VALORES ( 0), (1), (2), (3), (4), (5 ), (6), (7), (8), (9), - la generación de un digital de 0-9, para facilitar más tarde el cálculo del tiempo
3, se genera los datos de fecha y se inserta en
el inserto de la eN my_date (fecha) el SELECT
ADDDATE (
(- aquí la fecha de inicio, la fecha actual se puede reemplazar
el DATE_FORMAT ( "01/01/2016", 'M - %%% Y-D')
),
numlist.id
) date` en el anterior `AS
FROM
(
SELECT
n1.i + * * 10 + n100.i n10.i + n1000.i * 100 * 10 000 1000 + AS ID n10000.i
la DE
NUM N1
el CROSS la unión N10 NUM el AS
el CROSS la unión NUM el AS N100
la CRUZ la unión N1000 NUM el AS
el CROSS la unión NUM la n10000 AS
) AS numlist;
4, el efecto ORDER_LINE datos en la tabla de origen
seleccione DATE_FORMAT (md.date, '% Y-% m-% d') t, count (a.id) de my_date md combinación izquierda order_line una de DATE_FORMAT (md.date, '% Y-% m-% d' ) = DATE_FORMAT ( un .created_time, '% Y-% m-% d')
donde DATE_FORMAT (md.date, '% Y-% m-% d')> = '01/01/2019' y DATE_FORMAT (md .date, '% Y-% m-% d') <= '01/30/2019'
grupo por t;