Tôi hy vọng bạn sẽ tìm ra phần còn lại.
select * from (
select date_add('2003-01-01 00:00:00.000', INTERVAL n5.num*10000+n4.num*1000+n3.num*100+n2.num*10+n1.num DAY ) as date from
(select 0 as num
union all select 1
union all select 2
union all select 3
union all select 4
union all select 5
union all select 6
union all select 7
union all select 8
union all select 9) n1,
(select 0 as num
union all select 1
union all select 2
union all select 3
union all select 4
union all select 5
union all select 6
union all select 7
union all select 8
union all select 9) n2,
(select 0 as num
union all select 1
union all select 2
union all select 3
union all select 4
union all select 5
union all select 6
union all select 7
union all select 8
union all select 9) n3,
(select 0 as num
union all select 1
union all select 2
union all select 3
union all select 4
union all select 5
union all select 6
union all select 7
union all select 8
union all select 9) n4,
(select 0 as num
union all select 1
union all select 2
union all select 3
union all select 4
union all select 5
union all select 6
union all select 7
union all select 8
union all select 9) n5
) a
where date >'2011-01-02 00:00:00.000' and date < NOW()
order by date
Với
select n3.num*100+n2.num*10+n1.num as date
bạn sẽ nhận được một cột có các số từ 0 đến max (n3) * 100 + max (n2) * 10 + max (n1)
Vì ở đây chúng ta có tối đa n3 là 3, SELECT sẽ trả về 399, cộng với 0 -> 400 bản ghi (ngày trong lịch).
Bạn có thể điều chỉnh lịch động của mình bằng cách giới hạn lịch, chẳng hạn như từ phút (ngày) bạn có đến bây giờ ().