更新时间:2025-12-17 GMT+08:00
分享

时间/日期函数

age(timestamp, timestamp)

描述:将两个参数相减,并以年、月、日作为返回值。若相减值为负,则函数返回亦为负。

返回值类型:interval

示例:

1
2
3
4
5
SELECT age(timestamp '2001-04-10', timestamp '1957-06-13');
           age           
-------------------------
 43 years 9 mons 27 days
(1 row)

age(timestamp)

描述:当前时间和参数相减。

返回值类型:interval

示例:

1
2
3
4
5
SELECT age(timestamp '1957-06-13');
           age           
-------------------------
 60 years 2 mons 18 days
(1 row)

adddate(date, interval | int)

描述:返回给定日期时间加上指定单位的时间间隔的结果。默认单位(即第二个参数为整型时)为天数。

返回值类型:timestamp

示例:

当入参为text类型时:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
select adddate('2020-11-13', 10);
  adddate
------------
 2020-11-23
(1 row)

select adddate('2020-11-13', interval '1' month);
  adddate
------------
 2020-12-13
(1 row)

select adddate('2020-11-13 12:15:16', interval '1' month);
       adddate
---------------------
 2020-12-13 12:15:16
(1 row)


select adddate('2020-11-13', interval '1' minute);
       adddate
---------------------
 2020-11-13 00:01:00
(1 row)

当入参为date类型时:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
select adddate(current_date, 10);
  adddate
------------
 2021-09-24
(1 row)

select adddate(date '2020-11-13', interval '1' month);
       adddate
---------------------
 2020-12-13 00:00:00
(1 row)

addtime(timestamp | time | text, interval | text | numeric)

描述:返回给定日期/时间加上指定时间间隔的结果。该函数仅8.2.0及以上集群版本支持。

  • 如果第一个参数为timestamp,函数返回timestamp。
  • 如果第一个参数为time或tex,函数返回text或time(取决于具体实现和兼容性配置,通常表现为字符串格式的时间),且支持超过24 小时的时间表示。
  • 支持第二个参数为numeric类型(通常表示秒数)。
  • 支持第二个参数为text类型(解析为时间格式或数值)。
  • 当输入文本包含无效字符时,会尝试截断并处理首字符负号的情况。

返回值类型:与第一个入参类型相同。

示例:

给定时间(timestamp类型)加指定时间间隔 (Interval类型):

1
2
3
4
5
SELECT ADDTIME('2020-11-13 01:01:01', '23:59:59');
addtime
---------------------
2020-11-14 01:01:00
(1 row)

给定时间(text类型)加指定时间间隔 (text类型)返回结果可超过24小时。

1
2
3
4
5
SELECT ADDTIME('20:1:1', '20:59:59+8');
addtime
----------
41:01:00
(1 row)

给定时间(time类型)加指定时间间隔数值 (numeric类型,通常表示秒数)。

1
2
3
4
5
SELECT addtime('10:00:00', 1.999999);
addtime
-----------------
10:00:01.999999
(1 row)

给定时间(text类型)加带有无效字符的文本时,会截断无效字符。

1
2
3
4
5
SELECT addtime('12:30:45', '00:15:30xyz');
addtime
----------
12:46:15
(1 row)

相关文档