前几天干活儿的时候,报表中有这么个需求,需要用pgsql查询两个日期间的所有年月,下面贴代码:
1 with recursive t(n) as (2 select date('2020-01-01')3 union all 4 select n+1 from t where n < date('2020-09-30')5 )select to_char(n, 'yyyy-mm') as month from t group by month order by month;
下面是执行效果:
这里可以看到,只要给出起止日期就可以,执行结果包括起止月份,主要思路就是递归,其中recursive函数配合with查询来实现遍历,然后查询的时候,用to_char函数截取年月后分组。
注意:给的日期必须要给到年月日,给年月是不可行的,但是你日期给到时分秒也是可以的
如果这篇博客帮助到了您,是我的荣幸,如果有好的想法,可以在评论区讨论哦。
原文转载:http://www.shaoqun.com/a/492727.html
olive:https://www.ikjzd.com/w/2025
扬帆计划:https://www.ikjzd.com/w/1581
蜜芽宝贝官网:https://www.ikjzd.com/w/1320
前几天干活儿的时候,报表中有这么个需求,需要用pgsql查询两个日期间的所有年月,下面贴代码:1withrecursivet(n)as(2selectdate('2020-01-01')3unionall4selectn+1fromtwheren<date('2020-09-30')5)selectto_char(n,'yyyy-mm')asm
trademanager:trademanager
asinseed:asinseed
长隆水上乐园票退票吗?番禺长隆水上乐园是电子票吗?:长隆水上乐园票退票吗?番禺长隆水上乐园是电子票吗?
香港购物的地方有哪些?具体位置在那里?:香港购物的地方有哪些?具体位置在那里?
亚马逊在巴西推出内部配送网络!:亚马逊在巴西推出内部配送网络!
没有评论:
发表评论