[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Mysql часовой пояс не меняется
timm2012
user posted image

Почему не изменяется время? ..она хранится в Datetime .. Timestamp исключен т.к. постоянно меняются данные
killer8080
http://dev.mysql.com/doc/refman/5.1/en/tim...ne-support.html
Цитата
The current session time zone setting affects display and storage of time values that are zone-sensitive. This includes the values displayed by functions such as NOW() or CURTIME(), and values stored in and retrieved from TIMESTAMP columns. Values for TIMESTAMP columns are converted from the current time zone to UTC for storage, and from UTC to the current time zone for retrieval.

The current time zone setting does not affect values displayed by functions such as UTC_TIMESTAMP() or values in DATE, TIME, or DATETIME columns. Nor are values in those data types stored in UTC; the time zone applies for them only when converting from TIMESTAMP values. If you want locale-specific arithmetic for DATE, TIME, or DATETIME values, convert them to UTC, perform the arithmetic, and then convert back.
timm2012
понял что так не работает. А как можно сделать попроще с моей моделью. значение часового пояса будет меняться в зависимости от выбраного пользователем
killer8080
чем обусловлен отказ от timestamp?
timm2012
Это не полный скрипт. Данные будут постоянно меняться а время должно сохранится - поэтому datatime.

Я делаю сообщения. Для mysql время едино. При выводе данное время должно подстраиваться под пользователя.


$mdata = ' 2012-12-31 00:01:00' ; 


как можно изменить часовой пояс в mdata допустим на +6 ?

нужно учитывать что обычное прибавление на +6 не получится т.к. время может быть например 23:34 и это коснется не только времени но и даты
killer8080
Цитата (timm2012 @ 8.01.2013 - 21:04)
Это не полный скрипт. Данные будут постоянно меняться а время должно сохранится - поэтому datatime.

не понял аргумент, единственной причиной отказа от метки времени юникс может быть только необходимость хранить даты за пределами его диапазона.
Цитата (timm2012 @ 8.01.2013 - 21:04)
как можно изменить часовой пояс в mdata допустим на +6 ? нужно учитывать что обычное прибавление на +6 не получится т.к. время может быть например 23:34 и это коснется не только времени но и даты

обыкновенно, там же я специально красным выделил. Все даты заносятся только в UTC, а уже при выводе делаем коррекцию под локаль
SELECT (`mdata` + INTERVAL 6 HOUR) AS `local_time` FROM `table`
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.