mysql 范围内日期列表_MySQL:选择一个范围内的所有日期,即使没有记录

我希望你能弄清楚其余的。

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

select n3.num*100+n2.num*10+n1.num as date

您将得到一列,数字从0到最大(n3)* 100最大(n2)* 10最大(n1)

由于这里我们的最大n3为3,所以SELECT将返回399,加0→& 400条记录(日历中的日期)。

您可以通过限制来调整动态日历,例如,从最小(日期)到现在()。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值