Если вы хотите получить результаты за прошедший час, и вы разделили компоненты даты и времени, то один метод:
WHERE (cdate + ctime) >= NOW() - INTERVAL '1 hour'
Обратите внимание, что это будет работать даже с полуночи до 1:00 утра. К сожалению, вероятно, он не будет использовать индексы. Это может быть проблемой, если у вас много данных. Вот один метод, который по крайней мере будет использовать индекс для cdate
:
WHERE cdate IN (CURRENT_DATE, CURRENT_DATE - INTERVAL '1 day') AND
( (cdate + ctime) >= NOW() - INTERVAL '1 hour' )