使用MySQL 5.0.27MySQL的Decimal函數的第一個參數是做什麼的?
這個查詢:SELECT CAST( '543.21' 爲十進制(100,2))
收益543.21
那麼,這一個: SELECT CAST('543.21 'AS DECIMAL(2,2))
事實上,我很難弄清楚這個參數有什麼作用。我正在使用它在varchar列中聚合數值(出於傳統原因!!)並舍入到2個小數位。
我應該選擇一個高數字嗎?
使用MySQL 5.0.27MySQL的Decimal函數的第一個參數是做什麼的?
這個查詢:SELECT CAST( '543.21' 爲十進制(100,2))
收益543.21
那麼,這一個: SELECT CAST('543.21 'AS DECIMAL(2,2))
事實上,我很難弄清楚這個參數有什麼作用。我正在使用它在varchar列中聚合數值(出於傳統原因!!)並舍入到2個小數位。
我應該選擇一個高數字嗎?
它描述了一個字段(或變量)能夠存儲多少個總位數。 DECIMAL(100,2) - 100個總位數,98之前,2後小數分隔 DECIMAL(2,2)2個總位數,0之前,2小數分隔後
這裏解釋: http://dev.mysql.com/doc/refman/5.1/en/numeric-types.html
[新增]
四捨五入只是使用ROUND()函數。
那麼爲什麼'SELECT CAST('543.21'AS DECIMAL(2,2))'return'.21'? – 2010-07-29 15:13:45
它確實爲我返回0.99。你有哪些MySQL版本? 看來這個區域在5.0和5.1之間有一些變化 http://dev.mysql.com/doc/refman/5.1/en/precision-math-decimal-changes.html – Mchl 2010-07-29 15:16:28
你會認爲它應該拋出像SQL Server這樣的錯誤(算術溢出)。 (只需0.02美元。) – 2010-07-29 15:18:44
你確定嗎?我剛剛運行第二個查詢,它返回.99。你運行的是哪個版本的MySQL? – 2010-07-29 15:19:07
'使用MySQL 5.0.27' – Mchl 2010-07-29 15:26:09
這是一個相當令人驚訝的結果!使用5.0.27,但無論如何解決了,謝謝。 – Lars 2010-07-29 15:28:12