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

Sae*_*yth 3 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,
Run Code Online (Sandbox Code Playgroud)

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

那么我们如何解决这个问题?有哪些选项和技术apps可以用于datetime跨国家统一?

ste*_*nix 8

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

有关更多信息,请参阅此问题:应该使用字段“日期时间”还是“时间戳”?

另请参阅有关日期时间的 Mysql 参考手册