我想在表中保存时区。数字范围从-12到+12,一些数字将有一个小数部分(即-4.30)。我知道timezoneoffset,但我不喜欢使用它。在sql server中定义十进制数据类型
我声明了一个小数(2,2),但它没有按预期工作。我原本将该列定义为tinyint;我将所有值都更改为0,然后将数据类型更改为小数(2,2),但现在似乎无法存储我需要的值。
感谢您的建议。
我想在表中保存时区。数字范围从-12到+12,一些数字将有一个小数部分(即-4.30)。我知道timezoneoffset,但我不喜欢使用它。在sql server中定义十进制数据类型
我声明了一个小数(2,2),但它没有按预期工作。我原本将该列定义为tinyint;我将所有值都更改为0,然后将数据类型更改为小数(2,2),但现在似乎无法存储我需要的值。
感谢您的建议。
尝试十进制(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。根据精度,最大存储大小会有所不同。
您可能正在寻找decimal(3,1)
:共有3个数字,其中一个位于逗号后面。
你正在得到什么错误? – reggie 2011-04-18 19:15:29