2016-11-01 11 views
1

Я использую MySQL с часовым поясом EDT. Во время смены времени (2016 Вс, 3 марта, 02:00). Я вижу это странное поведение, когда mysql игнорирует мое условие 2ed (выделено полужирным шрифтом). Есть ли способ исправить эту проблему ..?Летняя спасательная проблема

mysql> explain select resId,resTimeStamp from RESUME 
     where resTimeStamp >='2016-03-13 1:58:00' && resTimeStamp < '2016-03-13 1:59:00' 

строки разобраны = 9

mysql> explain select resId,resTimeStamp from RESUME 
     where resTimeStamp >='2016-03-13 1:59:00' && resTimeStamp < '2016-03-13 02:00:00'; 

строки разобраны = 2436217

MySQL лакомство выше запроса, как объяснить, выберите Resid, resTimeStamp из ВОЗОБН где resTimeStamp> = '2016- 03-13 1:59:00 ', игнорируя только & & resTimeStamp < '2016-03-13 02:00:00'; Можно ли настроить mysql для рассмотрения 2016-03-13 02:00:00 до 2016-03-13 02:59:59 as 2016-03-13 03:00:00

+0

Время '2016-03-13 02: 00' не существует, потому что часы сразу перескакивают от' 1: 59: 59' до '03: 00: 00'. – Barmar

+0

Что произойдет, если вы измените его на '2016-03-13 03: 00: 00'? – Barmar

+0

, тогда он отлично работает. это ошибка или особенность ..? –

ответ

0

Как указано в комментарии, это из-за Daylight Saving Time. Когда вы «подходите вперед», час пропадает.

Честно говоря, часовые пояса - это кошмар, который лучше всего избегать, где это возможно. В общем, это хорошая идея для set your database time zone to use UTC и для хранения всех datetimes как UTC. Это позволяет избежать беспокойства о таких вещах, как часовые пояса или летнее время. Вы можете использовать CONVERT_TZ для обработки конверсий или собственных функций преобразования часового пояса вашего языка программирования.

+0

Возможно ли в mysql через любой патч или установку изменить 2016-03-13 02:00:00 до 2016-03-13 02:59:59 как 2016-03-13 03:00:00 на все годы. Я считаю, что моя проблема будет решена. –

+0

@GauravSaini Конечно, вы могли бы исправить MySQL ... теоретически. А затем сохраните этот патч в версиях MySQL. Я думаю, вы обходите это неправильно. Вернемся. Откуда берутся эти недействительные даты? Почему вы сохраняете свои даты в местном часовом поясе? – Schwern

 Смежные вопросы

  • Нет связанных вопросов^_^