mysql 自定义两个日期,并根据自定义间隔天数,列出两个日期之间的日期列表

117 阅读1分钟

mysql 自定义两个日期,并根据自定义间隔天数,列出两个日期之间的日期列表

select b.the_day from (
select @no:=@no+1 as no, a.the_day from
    (
        select adddate('1970-01-01',t4.i * 10000 + t3.i * 1000 + t2.i * 100 + t1.i * 10 + t0.i) the_day
        from
            (select @no:=0) n,
            ( select 0 i union select 1 union select 2 union select 3 union select 4
              union select 5 union select 6 union select 7 union select 8 union select 9 ) t0,
            ( select 0 i union select 1 union select 2 union select 3 union select 4
              union select 5 union select 6 union select 7 union select 8 union select 9 ) t1,
            ( select 0 i union select 1 union select 2 union select 3 union select 4
              union select 5 union select 6 union select 7 union select 8 union select 9 ) t2,
            ( select 0 i union select 1 union select 2 union select 3 union select 4
              union select 5 union select 6 union select 7 union select 8 union select 9 ) t3,
            ( select 0 i union select 1 union select 2 union select 3 union select 4
              union select 5 union select 6 union select 7 union select 8 union select 9 ) t4
    ) as a
where the_day between date_format(20220101, '%Y-%m-%d') and date_format(20231231, '%Y-%m-%d')
having mod(no, 7) = 1) as b