Как хранить "2010-03-26 10:13:04 Etc / GMT" mysql? - PullRequest
0 голосов
/ 30 марта 2010

Я хотел бы сохранить значение "2010-03-26 10:13:04 Etc / GMT" в столбце типа datetime.

Когда я пытаюсь вставить его, я получаю исключение:

SQLException: в вашем синтаксисе SQL есть ошибка; проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса, который можно использовать около '10: 13: 04 и т.д. / GMT', в строке 1

Как вставить данные времени с часовым поясом.

Ответы [ 3 ]

0 голосов
/ 30 марта 2010

Вы можете сделать это в поле char ... но не в поле datetime. Посмотрите здесь для получения дополнительной информации о часовых поясах в MySQL:

http://dev.mysql.com/doc/refman/5.1/en/time-zone-support.html

и для изменения часовых поясов в базе данных:

http://dev.mysql.com/doc/refman/5.1/en/time-zone-upgrades.html

0 голосов
/ 30 марта 2010
  1. Вы должны использовать столбец datetime, поэтому значение должно быть 2010-03-26 10:13:04 без учета часовых поясов
  2. Любой строковый литерал должен быть разделен кавычками

Итак, запрос должен выглядеть как

INSERT INTO table set dtime='2010-03-26 10:13:04';
0 голосов
/ 30 марта 2010

Форматы даты / времени MySQL не поддерживают часовые пояса. Вам нужно будет «нормализовать» время к одному конкретному часовому поясу (обычно UTC или часовой пояс, в котором находится сервер) или сохранить часовой пояс в другом поле и самостоятельно рассчитать смещения.

Обратите внимание на альтернативу, представленную в этой записи блога: Хранение времени в mySQL оно немного устарело, но я думаю, что оно все еще применимо По-видимому, Wordpress хранит местное время и время по Гринвичу в двух разных полях DATETIME.

Похожие:

...