【发布时间】:2014-03-23 20:52:34
【问题描述】:
考虑一个餐桌商店,对于每个商店,我需要根据商店所在的国家/地区保留时区。将时区存储为 VARCHAR 是否很好(例如:值 = 亚洲/加尔各答)?或者是否有任何其他选项可用于存储时区信息?
【问题讨论】:
考虑一个餐桌商店,对于每个商店,我需要根据商店所在的国家/地区保留时区。将时区存储为 VARCHAR 是否很好(例如:值 = 亚洲/加尔各答)?或者是否有任何其他选项可用于存储时区信息?
【问题讨论】:
正如您所说,您应该在数据库中以“Asia/Kolkata”、“America/Los_Angeles”等形式将时区存储为 VARCHAR。这比从 UTC 存储任何类型的偏移量要好得多,因为该偏移量由于夏令时,可以是可变的。
另一个好的做法是将数据库中的所有时间都存储为 UTC。这样做可以让您轻松比较不同时区的商店之间的时间——这在汇总报告或汇总数据时特别有用。用户界面(或视图层)应负责将所有 UTC 时间转换为商店的本地时区。
【讨论】: