Generate a range of dates using SQL

前端 未结 15 1335
面向向阳花
面向向阳花 2020-11-28 05:47

I have a SQL query that takes a date parameter (if I were to throw it into a function) and I need to run it on every day of the last year.

How to generate a list of

15条回答
  •  南方客
    南方客 (楼主)
    2020-11-28 06:07

    I don't have the answer to re-use the digits table but here is a code sample that will work at least in SQL server and is a bit faster.

    print("code sample");
    
    select  top 366 current_timestamp - row_number() over( order by l.A * r.A) as DateValue
    from (
    select  1 as A union
    select  2 union
    select  3 union
    select  4 union
    select  5 union
    select  6 union
    select  7 union
    select  8 union
    select  9 union
    select  10 union
    select  11 union
    select  12 union
    select  13 union
    select  14 union
    select  15 union
    select  16 union
    select  17 union
    select  18 union
    select  19 union
    select  20 union
    select  21 
    ) l
    cross join (
    select 1 as A union
    select 2 union
    select 3 union
    select 4 union
    select 5 union
    select 6 union
    select 7 union
    select 8 union
    select 9 union
    select 10 union
    select 11 union
    select 12 union
    select 13 union
    select 14 union
    select 15 union
    select 16 union
    select 17 union
    select 18
    ) r
    print("code sample");
    

提交回复
热议问题