PostgreSQL 时间运算函数

时间的类型
PostgreSql数据库中的时间类型大致可以分为四种类型或者格式,分别为:

1、 Date:4个字节,只有日期没有时间如:“2015-04-10”;

2、 Timestamp:8个字节,可以有时区也可以没有,包含日期和时间,
如:“2015-04-10 10:00:00”;

3、 Interval:时间间隔 16字节,;

4、 Time:单指时间,可以有时区也可以不加,如:“10:00:12”,没有时区的为12字节长度,包含时区则是16字节;

时间的算术计算
下面介绍下时间类型的”+”,”-“,”*”,”/”:

时间的加减乘除
a) 日期直接与一个整型相加:
select date '2015-04-10' + integer '7';
Result:2015-04-17
select date '2015-04-10' + 7;
Result:2015-04-17
select date '2015-04-10' + '7'::integer;
Result:2015-04-17

b) 日期与时间间隔(interval)的运算:
select date '2015-04-10' + interval '3 years';
select date '2015-04-10' + interval '3 months';
select date '2015-04-10' + interval '3 days';
select date '2015-04-10' + interval '3 hours';
select date '2015-04-10' + interval '3 minutes';
select date '2015-04-10' -  interval '3 seconds';

c) 日期与时间类型(time)的运算:
select date '2015-04-10' + time '3:00';
select date '2015-04-10' - time '5:00';

d) 时间戳类型与时间类型的运算:
select timestamp '2015-04-17 10:00:00' - time '03:00';
select timestamp '2015-04-17 10:00:00' + time '03:00';

e) 时间间隔之间的运算:
select interval '1 hours' + interval '10 minutes';
select interval '1 hours' - interval '10 minutes';

f) 时间间隔与时间类型的运算:
select time '05:00' - interval '3 hours';
select time '05:00' + interval '5 hours';

g) 时间间隔的乘法:
900 * interval '1 second'

h) 时间间隔的除法:
interval '1 hour' / double precision '1.5'
        
TIPS1:
1. Date类型的值不能与Date类型的值相加,但是能相减,返回的是两个日期相差的天数,如interval ‘3 days’。
2. Date类型的值不能与timestamp类型的值相加,但是可以相减,返回的值是两个值相差的时间间隔(interval)。
3. Date类型的值能与time类型的值相加,相减,返回的值是timestamp类型。
4. Timestamp类型的值能与interval和time值相加相加,返回的值仍旧是timestamp类型。
5. 乘除运算只能是interval和time类型;

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。