菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
181
0

Pgsql之查询一段时间内的所有年月yyyy-mm

原创
05/13 14:22
阅读数 28301

前几天干活儿的时候,报表中有这么个需求,需要用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函数截取年月后分组。

注意:给的日期必须要给到年月日,给年月是不可行的,但是你日期给到时分秒也是可以的

 

如果这篇博客帮助到了您,是我的荣幸,如果有好的想法,可以在评论区讨论哦。

发表评论

0/200
181 点赞
0 评论
收藏