PostgreSQL make_interval() 函数使用指南

PostgreSQL make_interval() 函数从给定的年、月、日、时、分、秒字段创建一个间隔值。

make_interval() 语法

这是 PostgreSQL make_interval() 函数的语法:

make_interval(
    [ years int
    [, months int
    [, weeks int
    [, days int
    [, hours int
    [, mins int
    [, secs double precision ]]]]]]]
) -> TIMESTAMP

参数

years
可选的。 年数。 默认值为 0。
months
可选的。 月数。 默认值为 0。
weeks
可选的。 周数。 默认值为 0。
days
可选的。 天数。 默认值为 0。
hours
可选的。 小时数。 默认值为 0。
mins
可选的。 分钟数。 默认值为 0。
secs
可选的。 秒数。 默认值为 0。

返回值

PostgreSQL make_interval() 函数返回一个间隔值,它由给定的年、月、日、时、分、秒字段创建而来。

make_interval() 示例

这里的几个示例展示了 make_interval() 函数的基本用法。

SELECT make_interval(1, 2, 3, 4, 5, 6, 1.123);
           make_interval
------------------------------------
 1 year 2 mons 25 days 05:06:01.123

您可以单独指定一个字段来创建一个间隔值,比如一年,二个月, 一小时 等:

SELECT
    make_interval(years => 2) AS "years => 2",
    make_interval(months => 2) AS "months => 2",
    make_interval(weeks => 2) AS "weeks => 2",
    make_interval(days => 2) AS "days => 2",
    make_interval(hours => 2) AS "hours => 2",
    make_interval(mins => 2) AS "mins => 2",
    make_interval(secs => 2) AS "secs => 2";
-[ RECORD 1 ]---------
years => 2  | 2 years
months => 2 | 2 mons
weeks => 2  | 14 days
days => 2   | 2 days
hours => 2  | 02:00:00
mins => 2   | 00:02:00
secs => 2   | 00:00:02

您还可以任意组合几个参数,比如:

SELECT make_interval(years => 1, days => 10, mins => 15);
      make_interval
-------------------------
 1 year 10 days 00:15:00