我正在尝试将存储为varchar的值存储在十进制字段中。
以下示例均导致:“将数据类型varchar转换为数字时出错。”
我在这里缺少什么?
SELECT CONVERT(decimal(11,2), '6.999,50')
SELECT CONVERT(decimal(11, 2), '6.999,50')
SELECT CAST('6.999,50' AS decimal) / 100.0
SELECT CAST((CAST('6.999,50' AS decimal) / 100000) AS decimal(17,5))
答案 0 :(得分:2)
您错过了6.999,50不是有效小数的事实。肯定不能有十进制值的逗号和小数点吗?它应该是多少?
假设您的语言环境指定。作为分组和小数分隔符: 要删除分组数字:
SELECT CONVERT(decimal(11,2), REPLACE('6.999,50', '.', ''))
将产生6999,50作为小数
答案 1 :(得分:0)
我怀疑它是你的语言环境设置。您的语言环境使用逗号作为小数点,使用句点作为分隔符。您的sql server可能设置为默认的美国英语,相反,句点为小数点,逗号为分隔符。