2011-04-18 42 views
0

我想在表中保存时区。数字范围从-12到+12,一些数字将有一个小数部分(即-4.30)。我知道timezoneoffset,但我不喜欢使用它。在sql server中定义十进制数据类型

我声明了一个小数(2,2),但它没有按预期工作。我原本将该列定义为tinyint;我将所有值都更改为0,然后将数据类型更改为小数(2,2),但现在似乎无法存储我需要的值。

感谢您的建议。

+0

你正在得到什么错误? – reggie 2011-04-18 19:15:29

回答

4

尝试十进制(4,2)

MSDN

十进制[(对[,S])]和数字[(对[,S])]

固定精度和规模数字。当使用最大精度时,有效值从 - 10^38 +1到10^38 - 1。小数的SQL-92同义词是dec和dec(p,s)。

P(精度)

指定的小数位的最大总数目可以被存储,同时向左边和小数点的右边。精度必须是从1到最大精度的值。的最大精度是38.默认精度为18

S(刻度)

指定的可存储到小数点右侧的小数位的最大数目。比例必须是从0到p的值。只有在指定了精度的情况下才能指定比例。默认比例是0;因此,0 < = s < = p。根据精度,最大存储大小会有所不同。

+0

更改为(4,2)。不工作:“输入字符串格式不正确”。我在4.30 – frenchie 2011-04-18 19:21:24

+0

我认为在时区,-4:30通常指的是-4,5小时,这不需要两个数字后面的逗号 – Andomar 2011-04-18 19:22:49

相关问题