Вы просто хотите минуты и секунды усечены? Как насчет вычитания минуты и секунды с момента, как так:
SELECT ADD_SECONDS(CURRENT_TIMESTAMP,
- MINUTE(CURRENT_TIMESTAMP) * 60
- SECOND(CURRENT_TIMESTAMP)) FROM DUMMY
Если вы действительно хотите раунде так, что 30 или более минут округляется до следующего часа вы должны работать с футляром либо вычитать минуты/секунды или добавьте оставшиеся минуты до следующего часа:
SELECT ADD_SECONDS(CURRENT_TIMESTAMP,
CASE WHEN MINUTE(CURRENT_TIMESTAMP) < 30
THEN -MINUTE(CURRENT_TIMESTAMP) * 60 - SECOND(CURRENT_TIMESTAMP)
ELSE (60-MINUTE(CURRENT_TIMESTAMP)) * 60 - SECOND(CURRENT_TIMESTAMP)
END
) FROM DUMMY
Заменить CURRENT_TIMESTAMP
с отметкой времени колонки по мере необходимости.
Работает как шарм –