【问题标题】:how to wite the date fuctionality for below output如何为以下输出编写日期功能
【发布时间】:2020-06-10 10:46:27
【问题描述】:

我想要全年的输出:

 Jan 01 - Jan 14 - 2021
 Jan 15 - Jan 28 - 2021
 Jan 29 - Feb 11 - 2021
 Feb 12 - Feb 25 - 2021
 Feb 26 - Mar 11 - 2021
 Mar 12 - Mar 25 - 2021
 Mar 26 - Apr 08 - 2021
 Apr 09 - Apr 22 - 2021
 Apr 22 - May 06 - 2021
 May 07 - May 20 - 2021
 May 21 - Jun 03 - 2021
 Jun 04 - Jun 17 - 2021
 Jun 18 - Jul 01 - 2021
 Jul 02 - Jul 15 - 2021
 Jul 16 - Jul 29 - 2021
 Jul 30 - Aug 12 - 2021
 Aug 13 - Aug 26 - 2021
 Aug 27 - Sep 09 - 2021
 Sep 10 - Sep 23 - 2021
 Sep 24 - Oct 07 - 2021
 Oct 08 - Oct 21 - 2021
 Oct 22 - Nov 04 - 2021
 Nov 05 - Nov 18 - 2021
 Dec 19 - Dec 02 - 2021
 Dec 03 - Dec 16 - 2021
 Dec 17 - Dec 30 - 2021

【问题讨论】:

    标签: sql postgresql date recursive-query


    【解决方案1】:

    一个选项使用generate_series()

    select d.dt dt_start, d.dt + '13 days'::interval dt_end
    from generate_series(
        date_trunc('year', current_date), 
        date_trunc('year', current_date) + '1 year'::interval - '13 days'::interval,
        '14 days'::interval
    ) d(dt)
    order by dt_start
    

    【讨论】:

    • 谢谢 GMB,如果我想在未来几年继续工作怎么办
    【解决方案2】:
    SELECT to_char(d, 'Mon DD - ')
        || to_char(d + INTERVAL '13 days', 'Mon DD - YYYY')
    FROM generate_series(
            TIMESTAMP '2021-01-01',
            TIMESTAMP '2021-12-17',
            INTERVAL '14 days'
         ) AS d;
    
            ?column?        
    ------------------------
     Jan 01 - Jan 14 - 2021
     Jan 15 - Jan 28 - 2021
     Jan 29 - Feb 11 - 2021
     Feb 12 - Feb 25 - 2021
     Feb 26 - Mar 11 - 2021
     Mar 12 - Mar 25 - 2021
     Mar 26 - Apr 08 - 2021
     Apr 09 - Apr 22 - 2021
     Apr 23 - May 06 - 2021
     May 07 - May 20 - 2021
     May 21 - Jun 03 - 2021
     Jun 04 - Jun 17 - 2021
     Jun 18 - Jul 01 - 2021
     Jul 02 - Jul 15 - 2021
     Jul 16 - Jul 29 - 2021
     Jul 30 - Aug 12 - 2021
     Aug 13 - Aug 26 - 2021
     Aug 27 - Sep 09 - 2021
     Sep 10 - Sep 23 - 2021
     Sep 24 - Oct 07 - 2021
     Oct 08 - Oct 21 - 2021
     Oct 22 - Nov 04 - 2021
     Nov 05 - Nov 18 - 2021
     Nov 19 - Dec 02 - 2021
     Dec 03 - Dec 16 - 2021
     Dec 17 - Dec 30 - 2021
    (26 rows)
    

    【讨论】:

    • 非常感谢 Laurenz Albe,如果我想在未来几年继续这些年怎么办?比如 2020- 2025 -----未来几年
    • 更改参数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-08
    • 2022-08-04
    • 2019-07-03
    • 1970-01-01
    • 2020-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多