我需要將帶小數的數字插入到SQL Server 2008數據庫中。看起來像decimal()是正確的數據類型,但是,我無法準確理解它。SQL Server 2008-無法理解十進制
我發現這個腳本(向下滾動十進制):
http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=95322
,讓我對數字測試不同的十進制設置,有一些我不明白爲什麼他們通過或失敗。按照我的理解,當使用十進制(precision,scale)時,精度是小數點左邊的位數,scale是小數點右邊的位數。使用這個函數,我不明白爲什麼有些人會通過,爲什麼有些人失敗了。
SELECT dbo.udfIsValidDECIMAL('2511.1', 6, 3)
我對右邊的左邊和1 4位,但這個失敗。
SELECT dbo.udfIsValidDECIMAL('10.123456789123456789', 18, 17)
SELECT dbo.udfIsValidDECIMAL('10.123456789123456789', 18, 16)
第一個失敗,第二個通過。小數點後有18位數字,所以它們似乎都應該失敗(或者傳遞和SQL截斷數字)。
也許我對decimal()應該如何工作有一個基本的誤解?
因此,您必須從精度中減去比例以獲得小數點左邊的位數嗎? – Pryach 2012-03-07 17:36:04