如何在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');