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