Большой запрос на обновление MySQL - PullRequest
1 голос
/ 31 марта 2009

Получив ответ из этой ветки, я бы сэкономил много времени, если бы кто-нибудь из читателей мог сослаться на него: текст ссылки Я считаю, что мне нужно обновить (в пределах базы данных mysql) код часового пояса, по отдельности (например, 10+, 1- и т. Д.), До кода Олсена (например, «Европа / Лондон» и т. Д.) В соответствии с тем, что уже существует в столбце user_timezone , Что было бы проще всего?

Любые идеи будут очень признательны.

Ответы [ 4 ]

1 голос
/ 01 апреля 2009

Учитывая, что смещение часового пояса (например, UTC + 2) может соответствовать многим записям в базе данных Olson (например, Европа / София, Европа / Рига, Африка / Каир и т. Д.), Вы должны заранее выбрать смещение к Переписка Олсона с кодом. Создайте таблицу, описывающую эти соответствия, а затем используйте ее для построения оператора обновления.

1 голос
/ 01 апреля 2009

К сожалению, у вас нет возможности узнать, в какой зоне находится пользователь из смещения UTC. Если вы посмотрите на список часовых поясов Википедии , вы заметите, что многие зоны имеют одинаковое смещение времени, например Европа / Сараево и Европа / Брюссель

0 голосов
/ 01 апреля 2009

Способ переназначения значений в mysql выглядит следующим образом:

UPDATE `sometable`
SET `somecolumn` = IFNULL(ELT(FIELD(`somecolumn`,
    'oldval1', 'oldval2', 'oldval3'),
    'newval1', 'newval2', 'newval3'),
    `somecolumn`
);

Это изменит вхождения 'oldval1' на 'newval1' и т. Д., Оставив в покое ничего, что не появляется в списке 'oldval'.

0 голосов
/ 31 марта 2009

Существует класс DateTimeZone , с которым вы можете работать, но вы получаете не смещение в часах, а в минутах (IIRC).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...