如何在PostgreSQL中查找当前月份的周数?
我的工作环境如何在PostgreSQL中查找当前月份的周数?,postgresql,Postgresql,我的工作环境 PostgreSQL version: 10.9 (64 bits) OS: Windows 10 (64 bits) 我需要找到当前月份中给定日期的周数。因此,与从年初开始计算的ISO周数不同,这里的计算是从当前月份开始进行的,因此结果是一个介于1和5之间的数字。以下是2020年6月的几个例子: Date in the current month Week number per current month ========================
PostgreSQL version: 10.9 (64 bits)
OS: Windows 10 (64 bits)
我需要找到当前月份中给定日期的周数。因此,与从年初开始计算的ISO周数不同,这里的计算是从当前月份开始进行的,因此结果是一个介于1和5之间的数字。以下是2020年6月的几个例子:
Date in the current month Week number per current month
========================== ===============================
2020-06-01 -----> 1
2020-06-10 -----> 2
2020-06-19 -----> 3
2020-06-23 -----> 4
2020-06-23 -----> 5
我正在阅读在线文档:似乎没有直接提供我想要的功能。经过几次成功的测试,我发现了以下解决方案:
select
extract('week' from current_date) -
extract('week' from date_trunc('month', current_date))
+ 1;
我认为自己是使用日期函数的新手,所以为了确保我走在正确的轨道上,你认为这个解决方案是正确的吗?正如我所说,在几次测试之后,我觉得它完成了任务。该方法提供了这样一个功能:
W
-每月的一周(1-5)(第一周从每月的第一天开始)
它返回一个字符串值,但很容易转换为数字。to_char()太强大了。太棒了!非常感谢你的帮助。
select to_char(current_date, 'W');