nvarchar浮点数和语言影响之间的转换

时间:2019-01-30 13:52:13

标签: sql sql-server

当我这样做

select cast('2,2' as float)
replace('2,2' , ',' , '.' ) is needed before casting

我有以下错误“将数据类型varchar转换为float时出错”。 因为有逗号。

当我这样做

 select cast('2.2' as float)

结果为“ 2,2”,并带有逗号

由于我将excel文件与法语格式的数字集成在一起,所以我有点迷惑:用逗号“,”代替“。”。所以我有很多这样的错误

谢谢!

3 个答案:

答案 0 :(得分:0)

SQL Server Documentation指出,用于将数字/浮点字符转换为数字格式所需的符号为科学符号

Scientific Notation

中显示数字为 6,720,000,000 => 6.72×109

因此答案是:不论“区域设置”如何,输入格式始终固定为科学计数法

答案 1 :(得分:0)

这应该有效

declare @rate double
set @rate = 1.954
select     FORMAT(@Rate, 'G', 'fr-fr') as formatted_decimal

1,9540

将打印

答案 2 :(得分:-1)

请使用这个,我认为这会帮助您

select cast(replace('2,2',',','.') as float)