【发布时间】:2018-12-19 20:46:38
【问题描述】:
我正在使用意大利语言环境设置的 SqlServer 2012 数据库,在查询小数字段时,我在 SSMS 中得到的结果有一个奇怪的行为
对于其他数字格式(例如货币或浮点数),查询显示结果为带有意大利小数分隔符(逗号“,”)的数字
对于小数,使用国际小数分隔符(点“.”)
这里是一个例子:
select
cast(1234.567 as decimal(7, 3)) as decimalValue
, cast(1234.567 as float) as floatValue
, cast(1234.567 as money) as MoneyValue
结果:
decimalValue floatValue MoneyValue
1234.567 1234,567 1234,567
其实我查询的是一个表的十进制字段,但是上面的查询结果是一样的
如何在 SSMS 的查询结果中获取使用意大利小数点分隔符格式化的十进制值? 我需要将结果复制并粘贴到 Excel 文件中(同样,使用意大利语言环境设置),以及用“。”格式化的十进制值。在 Excel 中粘贴时被识别为文本而不是数字
编辑: 刚刚找到一个解决方法:
select cast(MyDecimalField as float) from MyTable
这似乎可以解决问题,但奇怪的是我需要从“精确”数字类型转换为浮点数字类型
【问题讨论】:
标签: sql sql-server sql-server-2012