查询某月的全部日期的列表

1、根据某表查询,但是要求表内的数据大于31行 (‘2023-04’ 是可替换的日期参数)

select @i := @i+1 as 'num',
       date_add(date_format(concat('2023-04','-01'),'%Y-%m-%d'),interval @i day) as date1
from 
table,
(select @i := -1) t
where 
@i < (select dayofmonth(last_day(concat('2023-04','-01'))) -1)

  2、如果某表内数据不足31行,可以用下面的方法(time01和time02的乘积,就是范围)

select @i := @i+1 as 'num',
-- date_add(date_format(concat('2023-04','-01'),'%Y-%m-%d'),interval @i day) as date1 此行和下面sql语句是一样的作用
    DATE(date_add(concat('2023-04','-01'),interval @i day)) as date1 
from 
(select 1 union select 2 union select 3 union select 4 union select 5 union select 6) time01,
(select 1 union select 2 union select 3 union select 4 union select 5 union select 6) time02,
(select @i := -1) t
where 
-- @i < (select dayofmonth(last_day(concat('2023-04','-01'))) -1) 此行和下面sql语句是一样的作用
@i < DATEDIFF(last_day(concat('2023-04','-01')),concat('2023-04','-01'))

3、查询某年中的12个月 ('2023'是替换的日期参数,time01*time02 == 3*4 )

select @i := @i+1 as 'num',
concat('2023','-',if(@i < 9,'0',''),@i+1) as month01
from 
(select 1 union select 2 union select 3 ) time01,
(select 1 union select 2 union select 3 union select 4 ) time02,
(select @i := -1) t
where 
@i < 11;

        

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值