在sql server中定义十进制数据类型

时间:2011-04-18 19:12:29

标签: asp.net sql-server

我想在表格中保存时区。数字的范围是-12到+12,有些数字的小数部分(即-4.30)。我知道timezoneoffset但我不想使用它。

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

感谢您的建议。

2 个答案:

答案 0 :(得分:4)

尝试小数(4,2)

来自MSDN

十进制[(p [,s])]和数字[(p [,s])]

修正了精度和刻度数。当使用最大精度时,有效值为 - 10 ^ 38 +1到10 ^ 38 - 1.十进制的SQL-92同义词是dec和dec(p,s)。

p(精度)

指定小数点左侧和右侧可存储的最大小数位数。精度必须是从1到最大精度的值。最大精度为38.默认精度为18。

s(规模)

指定可以存储在小数点右侧的最大小数位数。比例必须是从0到p的值。只有在指定精度时才能指定比例。默认比例为0;因此,0 <= s <= p。最大存储大小因精度而异。

答案 1 :(得分:1)

你可能正在寻找decimal(3,1):共有3个数字,其中一个数字在逗号后面。

See the MSDN documentation