Sie können alles in dieselbe Zeitzone konvertieren, damit Sie sie miteinander vergleichen können (wenn die Zeitzone eingestellt wurde):
select current_time, current_time at time zone 'gmt';
timetz | timezone
-------------------+-------------------
20:50:51.07742-07 | 03:50:51.07742+00
Wenn die Zeitzone nicht eingestellt ist und Sie sie um eine Ortszeit korrigieren müssen:
select now()::time, now()::time + '+8:00'::interval;
now | ?column?
-----------------+-----------------
20:57:49.420742 | 04:57:49.420742
Wenn Sie die Zeit so eingestellt haben, wie Sie es wünschen, brauchen Sie nur die Stunde zu extrahieren und können eine einfache Bedingung verwenden, um die richtigen Zeiten auszuwählen.
select *
from
(select extract(hour from now()::time + '+8:00'::interval) as hour) as t
where hour between 8 and 16;