2015-10-12 86 views
1

規模我最近跨列聲明,其中精密等於擴展傳來:精密等於在MS SQL-服務器

... 
[MYCOLUMN] [decimal](5, 5) NULL, 
... 

根據這一documentation這似乎是正確的。

但我不明白,這是否意味着小數點適合於,只能有小數點右邊的數字?

+1

十進制(5,3)指有價值的長度爲5分的手段'12.345'和3意味着你可以使用後3號十進制 – wiretext

回答

4

是的,這意味着插入表格時只允許使用小數。其他所有內容都將被截斷,並且很可能會生成「數據將被截斷」警告。

所以該列的可能值是在以下範圍內:

0 - 0.99999

看一看這個SQLFiddle。如果您取消註釋將1插入到表中,您將收到截斷錯誤。

此外,如果SQLFiddle不斷下降,這裏是代碼:

create table test (col1 decimal(5,5)); 

insert into test values (0.12345); 
insert into test values (0); 
-- insert into test values (1); 

select * 
from test 
+1

你很可能會得到一個'算術溢出錯誤轉換數字到數據類型數字'錯誤試圖插入大於零的任何東西。試試看:'聲明@Test table(MYCOLUMN decimal(5,5)NULL);插入@test values(1.1); select @ from @ test' –

+0

@KM是的,這聽起來似乎更合理。我現在無法訪問SQL Server數據庫,因此我無法檢查並確切地說出您將收到的消息。 –

+0

在這裏你有演示https://data.stackexchange.com/stackoverflow/query/374839 – lad2025