📅  最后修改于: 2023-12-03 14:45:35.995000             🧑  作者: Mango
在 PostgreSQL 中获取一个月的最后一天有多种方法。以下是几种常见的方法:
SELECT (date_trunc('MONTH', NOW()) + INTERVAL '1 MONTH - 1 day')::date;
该语句首先使用 date_trunc 函数以“MONTH”为单位将当前日期截断到月初。然后使用 interval 函数获取下个月的第一天,最后再减去一天以获得当前月的最后一天。
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 函数获取下个月的第一天,再减去一天以获取当前月的最后一天。
SELECT (date_trunc('MONTH', NOW()) + INTERVAL '1 MONTH' - extract(day from date_trunc('MONTH', NOW())))::date;
该语句首先使用 date_trunc 函数以“MONTH”为单位将当前日期截断到月初,并使用 extract 函数获取该月的天数。然后使用 interval 函数获取下个月的第一天,减去当月天数再减一天以获取当前月的最后一天。
以上就是几种获取 PostgreSQL 中一个月的最后一天的常用方法。请根据自己的具体情况选择最适合自己的方法。
注意:以上查询语句均使用了 NOW() 函数来获取当前日期。如果您需要获取其他日期的最后一天,请自行更改。