📌  相关文章
📜  postgresql 获取一个月的最后一天 - SQL (1)

📅  最后修改于: 2023-12-03 14:45:35.995000             🧑  作者: Mango

PostgreSQL 获取一个月的最后一天 - SQL

在 PostgreSQL 中获取一个月的最后一天有多种方法。以下是几种常见的方法:

方法 1:使用 date_trunc 和 interval 函数
SELECT (date_trunc('MONTH', NOW()) + INTERVAL '1 MONTH - 1 day')::date;

该语句首先使用 date_trunc 函数以“MONTH”为单位将当前日期截断到月初。然后使用 interval 函数获取下个月的第一天,最后再减去一天以获得当前月的最后一天。

方法 2:使用 to_char 和 to_date 函数
SELECT to_date(to_char(NOW(), 'YYYY-MM') || '-01', 'YYYY-MM-DD') + INTERVAL '1 MONTH - 1 day';

该语句首先使用 to_char 函数将当前日期格式化为“YYYY-MM”的字符串,并将其与“-01”连接以得到当前月的第一天。然后使用 to_date 函数将该字符串转换回日期类型。最后使用 interval 函数获取下个月的第一天,再减去一天以获取当前月的最后一天。

方法 3:使用 extract 函数和 date_trunc 函数
SELECT (date_trunc('MONTH', NOW()) + INTERVAL '1 MONTH' - extract(day from date_trunc('MONTH', NOW())))::date;

该语句首先使用 date_trunc 函数以“MONTH”为单位将当前日期截断到月初,并使用 extract 函数获取该月的天数。然后使用 interval 函数获取下个月的第一天,减去当月天数再减一天以获取当前月的最后一天。

以上就是几种获取 PostgreSQL 中一个月的最后一天的常用方法。请根据自己的具体情况选择最适合自己的方法。

注意:以上查询语句均使用了 NOW() 函数来获取当前日期。如果您需要获取其他日期的最后一天,请自行更改。

参考链接