0

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

当我尝试插入它时,我遇到了异常:

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

如何插入带有时区的数据时间。

4

3 回答 3

0

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

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

有关的:

于 2010-03-30T11:09:02.180 回答
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

于 2010-03-30T11:09:52.320 回答
0
  1. 您必须使用日期时间列,因此值必须2010-03-26 10:13:04没有任何时区指示
  2. 任何字符串文字都必须用引号分隔

所以,查询必须看起来像

INSERT INTO table set dtime='2010-03-26 10:13:04';
于 2010-03-30T11:10:44.017 回答