PostgreSql函数和操作符一之时间运算1

时间的类型
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类型;

你可能感兴趣的:(PostgreSql)