【发布时间】:2014-11-11 02:20:15
【问题描述】:
我有 6 个字符长的数字,隐含 3 个小数位。一个示例数字是 035000。所以这是数字 35 [已编辑]。如何将其从 nvarchar 转换为 decimal(6,3)?
当我尝试CAST(col as decimal(6,3) 时,我得到了错误:
将 nvarchar 转换为数字数据类型时出现算术溢出错误。
我也尝试使用解析前导 0
select CAST(SUBSTRING(col, patindex('%[^0]%', col), 6) as decimal(6, 3))
from my_table
然而,我得到了同样的错误信息。还是我应该将其作为nvarchar 留在数据库中,然后在我的 C# 代码中进行转换?
【问题讨论】:
-
035000 如果我们尝试用 3 位小数替换,我认为它将是 35。您确定示例吗?
-
您是否尝试将其转换为整数然后除以 1000?
标签: c# sql sql-server-2008 tsql