LINUX.ORG.RU

sql now()

 ,


0

1

Есть критерий выбора

(NOW() - '1000 seconds'::interval)
Никак не могу сделать, что бы интервал начинался с NOW() + 5 секунд, т.е. не с момента начала выполнения запроса. Подскажите пжл, кто чем сможет.

возьми и прибавь к ней 5 секунд

Deleted ()
Ответ на: комментарий от AnDoR

Спасибо! Вот такую тонкость не могу осилить

 # SELECT ( NOW() + '5 seconds' ) - '10 seconds'::interval;
           ?column?            
-------------------------------
 2017-01-21 22:39:55.949572+03
(1 row)
 
# SELECT ( NOW() - '5 seconds' ) - '10 seconds'::interval;
ERROR:  invalid input syntax for type timestamp with time zone: "5 seconds"
LINE 1: SELECT ( NOW() - '5 seconds' ) - '10 seconds'::interval;
 

Т.е. без ::interval вычесть не удается. Почему?

macumazan ★★ ()
Последнее исправление: macumazan (всего исправлений: 1)
Ответ на: комментарий от macumazan

Лучше приводить типы явно, не надеясь на неявное приведение.

AnDoR ★★★★★ ()
Ответ на: комментарий от macumazan

Т.е. без ::interval вычесть не удается. Почему?

Там же всё написано ясно и понятно, без iterval это timestamp и у него какой-то другой синтаксис. И чтобы из одного timestamp получить другой нужно прибавить interval, а не timestamp. Операция timestamp + timestamp бессмысленная, но есть timestamp - timestamp.

mashina ★★★★★ ()
Последнее исправление: mashina (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.