PostgreSQL 计算当月第一周天数
可以使用 extract 函数获取日期的年份和月份,然后使用 date_trunc 函数获取月份的第一天,并通过 date_part 函数获取该天是星期几。然后根据该天是星期几,判断该周实际有几天。
示例代码如下:
SELECT
date_part('d', '2023-04-01'::date) AS day_of_month,
date_part('dow', date_trunc('month', '2023-04-01'::date)) AS first_day_of_week,
CASE
WHEN date_part('dow', date_trunc('month', '2023-04-01'::date)) <= 5 THEN 7 - date_part('dow', date_trunc('month', '2023-04-01'::date)) + 1
ELSE 14 - date_part('dow', date_trunc('month', '2023-04-01'::date)) + 1
END AS days_of_first_week;
输出结果为:
day_of_month | first_day_of_week | days_of_first_week
--------------+-------------------+-------------------
1 | 6 | 2
(1 row)
说明2023年4月1日是该月的第一天,也是星期六,因此该月的第一周只有2天。
原文地址: https://www.cveoy.top/t/topic/npOY 著作权归作者所有。请勿转载和采集!