在 MySQL 中存储时区偏移的数据类型/结构

Posted

技术标签:

【中文标题】在 MySQL 中存储时区偏移的数据类型/结构【英文标题】:Datatype/structure to store timezone offset in MySQL 【发布时间】:2011-11-27 01:26:25 【问题描述】:

mysql 中存储时区偏移的正确数据类型/结构是什么?我只想存储数值(城市和国家显然存储在其他列中)。

例子:

-5:00 瓜亚基尔,ECU -4:30 加拉加斯,VEN 0:00 某城市 2:00 波恩,德国

【问题讨论】:

如果您只存储“数值”,您实际上并没有存储时区,您只是存储时区偏移量。有很大的不同,尤其是当您处理未来的日期时,由于政治原因,偏移量可能随时发生变化。 【参考方案1】:

您应该使用TIME。这是任务的正确数据类型:您有格式并且calculations 可用。此外,根据文档,TIME 也应该用作两个时刻之间差异的结果,这实际上是时区。

来自文档:

MySQL 以 'HH:MM:SS' 格式(或 'HHH:MM:SS' 格式用于大小时值)。 TIME 值的范围可以从 “-838:59:59”到“838:59:59”。小时部分可能很大,因为 TIME 类型不仅可以用来表示一天中的时间(其中 必须小于 24 小时),还包括经过的时间或时间间隔 在两个事件之间(可能远大于 24 小时,甚至 负)。

【讨论】:

以上是关于在 MySQL 中存储时区偏移的数据类型/结构的主要内容,如果未能解决你的问题,请参考以下文章

在 MySQL 中计算时区的偏移量

没有时区的时间戳中的夏令时时间偏移

如何在 MySQL 服务器中使用 DATETIME 存储 GMT 偏移量

.NET 通过时区名称获取时区偏移量

C:如何在特定时区(按偏移量)打印特定的“时间”值?

javascript显示中的时区偏移