SQL SERVER 2008 nvarchar 轉換 deciaml 失敗(nvarchar to decimal)


轉換數據發生

消息 8115,級別 16,狀態 6,第 1 行
將 nvarchar 轉換為數據類型 numeric 時出現算術溢出錯誤。

nvarchar 是帶很長小數,直接轉換成decimal 失敗

解決方案:

先轉換成float 再轉換成decimal 或者int(去掉小數位)

  CAST(CAST(TRANS_CHARGE AS FLOAT) AS INT)

 

Why float?

  • no idea of precision or scale across all rows: float is the lesser evil perhaps
  • empty string will cast to zero for float, fails on decimal
  • float accepts stuff like 5E-02, fails on decimal

參考:

http://stackoverflow.com/posts/3790617/edit


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM