2016-12-06 9 views
0

У меня есть SQL-запроса с которой оператор так:MySQL NOW(), кажется, правильно сравнивать с местной DateTime на моей машине, но не на развертывание

WHERE event.`local_time` > NOW() 

, в котором local_time не является UTC datetime для часового пояса, в котором место проведения мероприятия. Кажется, что WORK PERFECTLY работает над моей локальной сборкой приложения, но в среде развертывания мы получаем 5-часовое смещение от UTC (события, как видно, происходят за пять часов до их фактического существования).

Что здесь происходит?

Я пытался что-то вроде этого:

WHERE CONVERT_TZ(event.`local_time`, venue.timezone, 'UTC') < NOW() 

но кажется, что возвращать нулевые строки каждый раз. (Примечание: наши часовые пояса хранятся как «Америка/Нью-Йорк»)

Любое понимание было бы весьма полезным, но особенно любое объяснение несоответствия между моей локальной машиной и нашей средой развертывания было бы очень полезно.

Спасибо!

ответ

1

Похоже, вы планируете использовать названные часовые пояса («место проведения. Зона времени»). Убедитесь, что таблица «mysql.time_zone» заполняется одинаково на обоих концах.

Чтобы проверить, добавлена ​​ли информация о часовом поясе в MySQL: выберите сейчас(), CONVERT_TZ (сейчас(), 'UTC', 'America/New_York'); Если вы получите NULL во второй колонке - у вас нет загруженного часового пояса.

Для Linux вы можете заполнить таблицы, связанные с часовым поясом, в mysql DB, выполнив: mysql_tzinfo_to_sql/usr/share/zoneinfo | mysql -u U_S_E_R -p mysql

и проверьте обе стороны снова.

1

Убедитесь, что результат с обоих мест для следующего запроса одно и то же:

SELECT @@global.time_zone, @@session.time_zone; 

Если нет, вы можете непрестанно установить глобальный часовой пояс с:

SET GLOBAL time_zone = timezone; 
or 
per connection with: 
SET time_zone = timezone; 

Проверка MySQL docs для часовой пояс (выберите подходящую версию MySQL для своего случая).

+0

Я получаю SYSTEM, SYSTEM для моей локальной сборки и live db – tcmoore

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

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