postgresql中声明时间值的总和
Sum of declare time values in postgresql
脚本
DO $$
DECLARE
a time := '05:00:00';
b time := '10:00:00';
BEGIN
RAISE NOTICE '%', a;
PERFORM pg_sleep(5);
RAISE NOTICE '%', b;
RAISE NOTICE '%', a + b::time;
END $$;
只是我想加上a和b,结果会显示17:00:00这样的。
当我写这个 "RAISE NOTICE '%', a + b::time;" 然后引发错误
在下图中
谢谢。
time
数据类型表示一天中的精确时间。您不能添加两个 time
,就像您不能添加两个日期一样。另外,小时部分不能超过 24
您应该将其定义为一个区间。
knayak=# DO $$
knayak$# DECLARE
knayak$# a interval := '05:00:00';
knayak$# b interval := '10:00:00';
knayak$# BEGIN
knayak$# RAISE NOTICE '%', a;
knayak$# PERFORM pg_sleep(5);
knayak$# RAISE NOTICE '%', b;
knayak$# RAISE NOTICE '%', a + b;
knayak$# END $$;
NOTICE: 05:00:00
NOTICE: 10:00:00
NOTICE: 15:00:00
DO
脚本
DO $$
DECLARE
a time := '05:00:00';
b time := '10:00:00';
BEGIN
RAISE NOTICE '%', a;
PERFORM pg_sleep(5);
RAISE NOTICE '%', b;
RAISE NOTICE '%', a + b::time;
END $$;
只是我想加上a和b,结果会显示17:00:00这样的。 当我写这个 "RAISE NOTICE '%', a + b::time;" 然后引发错误 在下图中
谢谢。
time
数据类型表示一天中的精确时间。您不能添加两个 time
,就像您不能添加两个日期一样。另外,小时部分不能超过 24
您应该将其定义为一个区间。
knayak=# DO $$
knayak$# DECLARE
knayak$# a interval := '05:00:00';
knayak$# b interval := '10:00:00';
knayak$# BEGIN
knayak$# RAISE NOTICE '%', a;
knayak$# PERFORM pg_sleep(5);
knayak$# RAISE NOTICE '%', b;
knayak$# RAISE NOTICE '%', a + b;
knayak$# END $$;
NOTICE: 05:00:00
NOTICE: 10:00:00
NOTICE: 15:00:00
DO