如何存储“2010-03-26 10:13:04 Etc / GMT”mysql?

时间:2010-03-30 11:03:49

标签: mysql datetime timezone sqlexception

我想在datetime类型的列中存储“2010-03-26 10:13:04 Etc / GMT”值。

当我尝试插入它时,我得到了例外:

  

SQLException:您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以便在'10:13:04 Etc / GMT'附近的第1行使用正确的语法

如何使用时区插入数据时间。

3 个答案:

答案 0 :(得分:0)

MySQL的日期/时间格式不支持时区。您必须将时间“标准化”到一个特定时区(通常是UTC或服务器所在的时区),或将时区存储在不同的字段中并自行计算偏移量。

查看此博客文章中提供的替代方案:Storing Times in mySQL它有点过时但我认为它仍然适用。显然,Wordpress将本地和GMT时间存储在两个不同的DATETIME字段中。

相关:

答案 1 :(得分:0)

您可以在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

答案 2 :(得分:0)

  1. 您必须使用日期时间列,因此值必须为2010-03-26 10:13:04,且不需要任何时区修改
  2. 任何字符串文字必须用引号
  3. 分隔

    所以,查询必须看起来像

    INSERT INTO table set dtime='2010-03-26 10:13:04';