2011-05-08 58 views
1

我想存储时区,但不在timezoneoffset数据类型中。我应该使用小数还是浮点数?或者是其他东西?纽芬兰的时区可以是格林威治标准时间-3.5分,印度的部分时区可以是+5.5,因此int不起作用。用于存储时区的数据类型

+1

那么像“美国/温哥华”这样的时区怎么样? DST调整(当它发生时,如果它存在的话)取决于政治因素,所以使用基于城市的时区有一个很好的论点。 – 2011-05-08 03:24:30

回答

1

为什么不使用查找表?它看起来像这样:

create table TimeZone (
    id int identity primary key, 
    name varchar(50), 
    offset decimal(2,1) 
) 

从主表中引用外键。

+0

如果我只是想选择一个数据类型呢?什么是在SQL服务器中选择的数据类型? – frenchie 2011-05-08 03:31:57

+0

在我的情况下,你会使用一个int,并使其成为引用上述表的外键。除了datetimeoffset之外,您唯一的其他选项是小数或数字列。我倾向于使用单独的表格方法,因为您可以使用它来驱动用户界面中的下拉菜单,并且可以提供更好的报告。 – 2011-05-08 03:38:30

+0

如果我带小数点,我该用什么?十进制(4,2)? – frenchie 2011-05-08 04:08:22

相关问题