Pgsql之查詢一段時間內的所有日期


前幾天干活兒的時候,項目中有這么個需求,需要用pgsql查詢兩個日期間的所有日期,包括年月日,下面貼代碼:

1 select date(t) as day
2 from 
3 generate_series('2020-10-27'::date,'2020-11-03', '1 days') as t;

下面是執行效果,跨年跨月的情況也是沒問題的:

 

下面咱們說下PostgreSql中generate_series函數的用法:

用處:他可以按照不同的規則來生成填充數據

語法:

 也可以用遞歸來做,其中recursive函數配合with查詢來實現遍歷,效率會更高一些:

1 with recursive t(n) as (
2     select date('2020-10-27')
3     union all 
4     select n+1 from t where n < date('2020-11-03')
5 )select n as day from t;

執行效果:

 

如果這篇博客幫助到了您,是我的榮幸,如果有好的想法,可以在評論區討論哦。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM