Сумма объявленных значений времени в postgresql - PullRequest
0 голосов
/ 31 марта 2019

сценарий

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 вот так. Когда я пишу это «ПОДНИМИТЕ УВЕДОМЛЕНИЕ«% », a + b :: time;» затем поднять ошибку на следующем рисунке

image

Спасибо.

1 Ответ

2 голосов
/ 31 марта 2019

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
...