有谁知道什么是正确的 MySQL 列类型以便以以下格式存储日期?例如:2012-11-11T11:09:28+00:00
更新:我感兴趣的部分是如何存储执行+xx:xx
操作的用户的时区,问题是是否存在包含时区的 MySQL 日期格式。阅读 MySQL 文档并没有找到任何相关信息,这就是我在这里写的原因。
MySQL 中没有包含时区的 DATE/TIME 列类型。这也不是真的必要,因为时间戳是一个时间戳,它是一个绝对时间点。仅当您想将时间戳格式化为本地时间时,时区才相关,但 MySQL 将日期存储为绝对时间点,而不考虑时区。
如果要存储包含时区信息的值,则必须将其存储为字符串。
但是,无论如何,更好的策略是:
这是处理此问题的典型方法。如果这对您的应用有意义,您还可以将时区存储在时间戳列旁边的另一列中:
`time_utc` (DATETIME) | `timezone` (VARCHAR)
----------------------+---------------------
2012-11-11 11:11:11 | Europe/Berlin
这样,您可以在数据库中拥有统一的时间戳来进行计算/查询,同时能够在需要时以本地时间格式化它们。