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

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

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

 

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

posted @   慵懒的小景  阅读(3430)  评论(2编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
TOP 底部
点击右上角即可分享
微信分享提示