mysql实现pgsql中的generate_series()函数生成日期列表

实现思路

1.创建表(临时表)作为日历表

2.通过date_add()函数,来生成偏移日期

3.使用while do实现循环插入日期值到日历表

如下列子所示:

-- 通过存储过程来实现
drop procedure if exists generate_date_series;
create procedure generate_date_series(in start_date varchar(10),in end_date varchar(10))
begin
    # 1.创建一个表,如果表不存在的话(也可以使用临时表)
    create  table if not exists tb_calendar(data_date date);
    
    # 清空日历表中的数据
    truncate table tb_calendar;
    set @start_date:= date(start_date);
    set @end_date:=date(end_date);

    # 3.根据传入的日期生成日期,进行循环插入
    while @start_date <= @end_date do
        insert into tb_calendar values (@start_date);
        # 2.通过date_add()函数,来生成偏移日期
        set @start_date := date_add(@start_date,interval 1 day);
    end while;
end;

## 使用存储结构
call generate_date_series('2022-10-04',DATE_FORMAT(now(),'%Y-%m-%d'));

## 查看日历表
select * from tb_calendar;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值