如何将"2010-03-26 10:13:04 Etc/GMT"存储到MySQL中?

19 浏览
0 Comments

如何将"2010-03-26 10:13:04 Etc/GMT"存储到MySQL中?

我想将"2010-03-26 10:13:04 Etc/GMT"的值存储到datetime类型的列中。

当我尝试插入时,出现异常:

SQLException: 在第1行附近有一个错误的SQL语法;请检查与您的MySQL服务器版本相对应的手册以使用正确的语法。

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

0
0 Comments

问题的原因是无法将 "2010-03-26 10:13:04 Etc/GMT" 存储到 MySQL 的 datetime 字段中。解决方法是使用 char 字段代替 datetime 字段存储时间信息。

在 MySQL 中,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
0 Comments

MySQL的日期/时间格式不支持时区。您需要将时间"规范化"为一个特定的时区(通常是UTC或服务器所在的时区),或者将时区存储在不同的字段中,并自己计算偏移量。

可以参考这篇博客文章中提出的替代方案:在MySQL中存储时间,尽管有些过时,但我认为它仍然适用。显然,WordPress在两个不同的DATETIME字段中分别存储本地时间和GMT时间。

相关链接:

0
0 Comments

问题原因:需要将日期时间存储到MySQL中,但是需要去除时区设置,只保留日期时间部分。

解决方法:使用datetime列来存储日期时间,并且不包含任何时区设置。将日期时间值设置为2010-03-26 10:13:04

另外,任何字符串文本必须使用引号进行分隔。

因此,查询语句应该是:

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

0