我正在尝试将一个存储为varchar的值存储在一个十进制字段中。
下面的示例都会导致:“将数据类型varchar转换为numeric时出错。”
这里我漏掉了什么?
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))发布于 2011-10-04 19:44:50
您忽略了6.999,50不是有效小数的事实。你不能在十进制值中有逗号和小数点吗?它应该是什么号码?
假设您的区域设置指定。作为分组和作为小数分隔符:要删除分组数字:
SELECT CONVERT(decimal(11,2), REPLACE('6.999,50', '.', '')) 将产生小数形式的6999,50
发布于 2011-10-04 19:55:50
我怀疑是你的语言环境设置。您的区域设置使用逗号作为小数点,句点作为分隔符。您的sql服务器可能设置为默认的美国英语,反之亦然,句点作为小数点,逗号作为分隔符。
https://stackoverflow.com/questions/7647333
复制相似问题