Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 将varchar转换为德语格式的浮点时出错_Sql Server_Ssis_Sql Server 2008 R2_Number Formatting_Type Conversion - Fatal编程技术网

Sql server 将varchar转换为德语格式的浮点时出错

Sql server 将varchar转换为德语格式的浮点时出错,sql-server,ssis,sql-server-2008-r2,number-formatting,type-conversion,Sql Server,Ssis,Sql Server 2008 R2,Number Formatting,Type Conversion,使用德语数字格式,我正在将带有列amount的CSV上载到我的SQL Server DB中,作为SSIS包的一部分 此包是通过SQL Server导入和导出向导创建的。SQL Server中为列数量分配的数据类型为varchar 50,null 三个数据如下所示: Declare @amount varchar(50) Set @amount = '1245,89' Select @amount 对于后续操作,我希望将其转换为数据类型float: select convert(float,@

使用德语数字格式,我正在将带有列amount的CSV上载到我的SQL Server DB中,作为SSIS包的一部分

此包是通过SQL Server导入和导出向导创建的。SQL Server中为列数量分配的数据类型为varchar 50,null

三个数据如下所示:

Declare @amount varchar(50)
Set @amount = '1245,89'
Select @amount
对于后续操作,我希望将其转换为数据类型float:

select 
convert(float,@amount)
这给了我一个错误:

Msg 8114,16级,状态5,第5行转换数据类型varchar时出错 漂浮

将十进制分隔符从“,”更改为“.”会起作用:

这就是我想要的,但我想知道是否可以直接在导入/导出向导中实现这一点,或者至少不替换“,”by“。除此之外,还有其他设置需要我改成德语吗


您是否尝试过使用PARSE而不是CONVERT?不,对于我的示例,这是什么样子的?这个函数对我来说是未知的,所以到目前为止,我只是通过搜索找到了文档-请参阅另一个选项是尝试更改导出,以便amount列是一个更合适的数据类型开始…啊,很抱歉,我使用的是SQL Server 2008 R2,它不支持此函数。关于更改SSIS包内的导出:这也是我尝试过的,但后来我得到了124589数据类型float!而不是1245,89。
Declare @amount varchar(50)
Set @amount = '1245.89'
Select @amount

select 
convert(float,@amount) + 3