【发布时间】:2015-03-18 13:47:36
【问题描述】:
我有数据存储在 nvarchar(10) 列中,我需要将其转换为 decimal(10,3)。每条记录都是完整的 10 个字符,前导零。最后三个数字代表小数。如何转换以下示例?
col1
----------
0000100001
0002507630
0090078607
0258736000
预期输出
col1 col2
-------------------------------
0000100001 100.001
0002507630 2507.630
0090078607 90078.607
0258736000 258736.000
我尝试过使用
Cast(covert(decimal(10, 3), col1) as Decimal(10, 3)) as col2
我收到的输出是
将 nvarchar 转换为数字数据类型时出现算术溢出错误。
如何正确转换这些数据?
【问题讨论】:
-
在外部转换中将内部转换除以 1000。
-
您有可以建议的语法吗?当我尝试除以 1000 时,我返回“'/' 附近的语法不正确。”
-
sidux 发布了我的建议作为答案。它应该适合你。
标签: sql-server sql-server-2012 data-conversion