具有不同时区的MySQL日期时间

时间:2017-08-15 08:31:13

标签: mysql timezone

我在DateTime数据库中有一个mysql对象,例如此datetime "2017-08-14 18:06:40",而server/mysql默认时区是美国,所以当我插入datetime时进入美国时区。

我的问题是,当一个用户说欧洲选择那个日期时间时,会因为时间差异不同而会有所不同吗?

如何解决此问题。我希望欧洲的用户获得相对于他们的时区的日期时间

我从搜索中找到了

CONVERT_TZ(`comment_date`,@@global.time_zone,@@session.time_zone) AS comment_date,

然后我发现您需要设置@@session.time_zone未自动检测到

那么我们如何解决这个问题以及网站或apps用于统一国家/地区datetime的选项和技术有哪些?

1 个答案:

答案 0 :(得分:2)

您应该将数据类型更改为timestamp而不是datetime,如果您希望它代表即时时刻,而不管保存时间区域。 Timestamp始终保存为UTC,datetime表示本地日期和时间,不包含任何区域信息。

有关详细信息,请参阅此问题:Should I use field 'datetime' or 'timestamp'?

另见Mysql reference manual regarding datetime