Вот решение с использованием DATE_FORMAT и DATE_ADD и 24-часовых часов
SELECT CONCAT(DATE_FORMAT('2019-05-03 19:31:31', '%H'), '-',
DATE_FORMAT(DATE_ADD('2019-05-03 19:31:31', INTERVAL 1 HOUR), '%H'))
и того же решения с 12-часовыми часами
SELECT CONCAT(DATE_FORMAT('2019-05-03 19:31:31', '%h'), '-',
DATE_FORMAT(DATE_ADD('2019-05-03 19:31:31', INTERVAL 1 HOUR), '%h %p'))
Это выдаст
час
19-20
07-08 PM
Интересно, что это даст следующий вывод, если время после 11 вечера
час
23-00
11-12 утра
Это лучше, чем, например, 23-24 или это просто плохой способ отображения времени?Может быть, для 12-часовых часов было бы лучше иметь AM / PM после каждого времени
11 PM - 12 AM