2013-09-19 3 views
0

Я читал здесь и Google о том, как MySQL хранит дату и дату, и я не могу понять, насколько это хорошо, и что мне нужно сделать, чтобы выполнить мои цели. Я также не совсем уверен, что мой хост настроен правильно, поскольку он, похоже, не ведет себя так, как я ожидаю.Преобразование MySQL datetime в разные временные интервалы

Моя цель: Дата и дата сохраняются как UTC +00: 00. Затем, когда база данных запрашивается с PHP, дата и дата будут преобразованы на основе настроек пользователя перед их отображением.

Запрос сервера SELECT @@ global.time_zone, @@ session.time_zone; возвращает SYSTEM для обоих.

Кроме того, если я попытаюсь выполнить запрос с SET time_zone '-05: 00'; он не изменяет дату и время, выводимые с сервера. Изменение его на любое другое значение также не меняет его.

ответ

0

MySQL только взаимодействует с сервером, на котором он работает, поэтому он будет предоставлять только часовой пояс этого сервера. Вам нужно будет get the time zone on the client side.

Edit:

MySQL не имеет временную зону буквального, так что вы можете использовать UTC_TIMESTAMP(), чтобы получить текущее время в формате UTC или вы можете конвертировать время в другом месте.

+0

Правильно, так как я могу заставить его сохранить дату-время как UTC 00:00, а затем преобразовать его при нажатии? – sharf

+0

Конвертировать его в UTC перед его хранением. Если вам нужна метка времени, используйте [UTC_TIMESTAMP()] (http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function%5Futc-timestamp). – crownjewel82

+0

Если я правильно понял UTC_TIMESTAP() (вместо того, чтобы сказать, что NOW()) сохранит текущее время UTC 00:00? Тогда как я буду манипулировать им потом? Есть ли функция в MySQL/PHP, которая может сделать это для меня? – sharf

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