Skip to content

PostgreSQL make_interval() 函数 ​

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

make_interval() 语法 ​

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

sql
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() 函数的基本用法。

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

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

sql
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";
sql
-[ 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

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

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