Я пытаюсь создать функцию, которая показывает время следующего получаса.
Поэтому, когда текущее время 13:40, я хочу, чтобы оно показывало 14:00, а не 13:30.
То, что я создал, выполняет свою работу, но в ближайшие полчаса, а не в ближайшее время:
CREATE OR REPLACE FUNCTION round_timestamp(
ts timestamptz
,round_secs int
) RETURNS timestamptz AS $$
DECLARE
_mystamp timestamp;
_round_secs decimal;
BEGIN
_round_secs := round_secs::decimal;
_mystamp := timestamptz 'epoch'
+ ROUND((EXTRACT(EPOCH FROM ts))::int / _round_secs) * _round_secs
* INTERVAL '1 second';
RETURN _mystamp;
END; $$ LANGUAGE plpgsql IMMUTABLE;
Любые идеи о том, как заставить эту работу отображать ближайший получасовой интервал в будущем?