2016-08-09 5 views
1

У меня возникли проблемы с изменением моих запросов, чтобы использовать текущий часовой пояс MDT. Сервер и MySQL являются UTCПреобразование UTC в MDT через MySQL

`date` = Tue Aug 9 23:32:52 UTC 2016 
SELECT NOW() = 2016-08-09 23:33:28 
cat /etc/localtime = UTC0 

Когда я пытаюсь запустить CONVERT_TZ() в США/горы, мое время далеко.

SELECT CONVERT_TZ(CURDATE() , 'UTC', 'US/Mountain') 

Возвращает 2016-08-08 18:00:00

Не уверен, что я делаю неправильно здесь.

+0

BTW .. мое текущее время MDT вт 9 авг 17:32:09 MDT 2016 – hanji

ответ

1

Вместо curdate, вы должны использовать now, как вы делали в вашем примере:

SELECT CONVERT_TZ(NOW() , 'UTC', 'US/Mountain') 

curdate возвращает только дату, а не время. Поэтому преобразование 2016-08-09 в US/Mountain компенсировало бы его на 6 часов и вернуло бы предыдущий день.

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