日期 LastDay

来自 PostgreSQL wiki
跳转到导航跳转到搜索

代码片段

Date LastDay()

适用于 PostgreSQL

任何版本

SQL

依赖于

由 Scott Bailey 'Artacus' 编写

在处理日期时,我们通常需要获取月份的第一天或最后一天。获取第一天很容易,可以使用 date_trunc 函数。

  SELECT date_trunc('MONTH', dtCol)::date;

但获取最后一天并不那么直观。来自 Oracle 的用户会认识这个函数。

CREATE OR REPLACE FUNCTION last_day(date)
RETURNS date AS
$$
  SELECT (date_trunc('MONTH', $1) + INTERVAL '1 MONTH - 1 day')::date;
$$ LANGUAGE 'sql' IMMUTABLE STRICT;


注意

此代码片段借鉴了 Chronos 时间扩展 项目。Chronos 是一个用于在 Postgres 和 Oracle 中处理时间数据的完整工具包。我会在这里发布一些更通用的函数。(因为我是作者,我想这样是可以的。)