九月 22, 2024
摘要:在本教程中,您将学习如何使用 PostgreSQL make_interval()
函数,从间隔的组成部分创建一个间隔值。
目录
PostgreSQL make_interval 函数简介
make_interval()
函数允许您从年、月、周、天、小时、分钟和秒创建一个间隔值。
下面是make_interval()
函数的语法:
MAKE_INTERVAL ( [ years int [, months int [, weeks int [, days int [, hours int [, mins int [, secs double precision ]]]]]]] ) → interval
在此语法中:
years
是表示年数的整数。months
是表示月数的整数。weeks
是表示周数的整数。days
是表示天数的整数。hours
是表示小时数的整数。mins
是表示分钟数的整数。secs
是表示秒数的双精度数字。
所有这些参数都是可选的,默认为零。
make_interval()
函数返回一个间隔类型的值。
除了make_interval()
函数之外,您还可以使用INTERVAL
字面语法来创建一个间隔值:
INTERVAL 'X years Y months Z days W hours V minutes U seconds'
INTERVAL
字面语法允许您,通过在单个字符串中指定所有组成部分,来创建一个间隔值。它适用于创建静态或预定义的间隔。
另一方面,make_interval()
函数提供了单独指定每个组成部分的灵活性,非常适合动态创建一个间隔值。例如,您可以使用make_interval()
函数根据表中存储的值创建一个间隔值。
PostgreSQL make_interval 函数示例
让我们来探索一些使用make_interval()
函数的示例。
1) 基础 make_interval 函数示例
下面的示例使用make_interval()
函数,创建一个表示 1 年、2 个月、3 天和 4 小时的间隔值:
SELECT
MAKE_INTERVAL(
years => 3, months => 6, days => 15, hours => 4
);
输出:
make_interval
---------------------------------
3 years 6 mons 15 days 04:00:00
(1 row)
2) 以默认值使用 make_interval 函数
make_interval()
函数的所有参数都是可选的,默认为零。例如,下面的语句创建一个间隔零值:
SELECT MAKE_INTERVAL();
输出:
make_interval
---------------
00:00:00
(1 row)
3) 对表数据使用 make_interval 函数
首先,创建一个新表,名为time_data
:
CREATE TABLE time_data (
id SERIAL PRIMARY KEY,
year INTEGER,
month INTEGER,
day INTEGER,
hour INTEGER,
minute INTEGER,
second INTEGER
);
第二步,向 time_data 表中插入一些行:
INSERT INTO time_data (year, month, day, hour, minute, second)
VALUES
(1, 3, 25, 10, 0, 0),
(2, 2, 25, 11, 30, 0),
(3, 1, 25, 13, 15, 0)
RETURNING *;
输出:
id | year | month | day | hour | minute | second
----+------+-------+-----+------+--------+--------
1 | 1 | 3 | 25 | 10 | 0 | 0
2 | 2 | 2 | 25 | 11 | 30 | 0
3 | 3 | 1 | 25 | 13 | 15 | 0
(3 rows)
第三步,使用make_interval()
函数,由time_data
表中存储的数据创建间隔值:
SELECT
MAKE_INTERVAL(
year, month, 0, day, hour, minute, second
) AS interval_data
FROM
time_data;
输出:
interval_data
---------------------------------
1 year 3 mons 25 days 10:00:00
2 years 2 mons 25 days 11:30:00
3 years 1 mon 25 days 13:15:00
(3 rows)
总结
使用make_interval()
函数,从提供的组成部分(如年、月、天、小时、分钟和秒)构造一个间隔值。
了解更多
PostgreSQL 教程:日期函数
PostgreSQL 文档:时间/日期函数和操作符