Конвертировать время в диапазон в SQL - PullRequest
0 голосов
/ 16 мая 2019

У меня есть поле даты и времени, например: 2019-05-13 13:01:39.

Я хочу, чтобы в SQL это было 1-2pm или 13-14pm.

Аналогично, 2019-05-03 19:31:31 должен отображаться как 7-8 или 19-20.

Возможно ли это в SQL, используя запрос?

Ответы [ 2 ]

2 голосов
/ 16 мая 2019

Вы можете использовать EXTRACT функцию MySql, чтобы получить любую часть даты или времени.Посетите Здесь для более подробной информации

SELECT CONCAT(EXTRACT(hour FROM yourdate) , '-' , (EXTRACT(hour FROM yourdate) + 1))
1 голос
/ 16 мая 2019

Вот решение с использованием 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...