Я унаследовал устаревшее приложение, в котором все даты и время хранятся в местном часовом поясе (Великобритания). Я не могу изменить, как они хранятся.
Однако требуется, чтобы в приложении отображались все даты по Гринвичу. Поэтому, когда я получаю список событий из базы данных, мне нужно, чтобы он отображал их все в этом формате времени, наблюдая, работает ли летнее время для каждой конкретной даты события. Используя следующую логику, я могу определить, активно ли летнее время в запросе:
IF(CAST(TIMEDIFF(NOW(), UTC_TIMESTAMP()) AS SIGNED) >0,
DATE_FORMAT(CONVERT_TZ(ADDTIME(`event_date`, IFNULL(`event_time`, '00:00')), '+01:00', '+00:00'), '%H:%i'), `event_time`) AS event_time
Это, однако, явно проверяет только дату запуска. Поэтому любые события в будущем, которые пересекают границы перехода на летнее время, не работают.
Есть ли способ определить, есть ли указанная дата в летнее время в самом запросе mysql?
Любая помощь, высоко ценится.