SET @time := '2018-11-08 00:36:50.000000';
SET @intervalInMinutes := 15
SELECT FROM_UNIXTIME((Select FLOOR ((select UNIX_TIMESTAMP(@time) / (@intervalInMinutes* 60))) * (@intervalInMinutes*60)));
Мне нужно написать запрос в MySQL, который преобразует дату / время в категорию ближайшего интервала, указанную пользователем.Примеры:
Например, 1: '2018-10-24 17: 45: 50,000000'
- Для интервала в 15 минут будет переводиться в '2018-10-24 17:45:00 '
- Для интервала в 30 минут будет переводиться в' 2018-10-24 17:30:00 '
- Для интервала в 60 минут будет переводитьсядо '2018-10-24 17: 00: 00'
Например, 2: '2018-10-24 17: 36: 20.000000';
- Для интервала в 15 минут будет переводиться в '2018-10-24 17: 30: 00'
- Для интервала в 30 минут будет переводиться в '2018-10-24 17:30:00'
- Для интервала 60 минут будет переводиться в' 2018-10-24 17: 00: 00 '
Я написал вышеупомянутый запрос, которыйКажется, работает нормально.Тем не менее, если перейти к этой записи , то в первом ответе будет комментарий, в котором говорится, что этот подход потерпит неудачу, когда даты и время переходят на летнее время .Я не понимаю пример, который он указывает.Другие подходы, которые я заметил в этой теме, выглядят еще более сложными для моего случая.Я пытаюсь понять, как это повлияет на мой сценарий.Любые предложения / примеры приветствуются. Или есть лучший способ избежать этого, написав более простой запрос?PS Я хочу, чтобы это было применимо к MySQL 5.6,5.7 и 8.0.