将Varchar从变量字符串转换为Float并插入SQL Server?

时间:2014-05-28 03:56:11

标签: php sql sql-server

我是SQL Server新手。我创建了一个脚本,我导入数据并插入SQL Server。更新查询工作正常但插入查询不正常。我收到错误

  

将数据类型varchar转换为float时出错。插入INTO dbo。

这是代码

 $amount = trim(str_replace('$','',$data[2]));
// echo ($amount); // prints 1,000,000.00

// INSERT QUERY
//Try 1 : Fails

  $Query  = "INSERT INTO dbo.testtable (id, name, amount) 
                                values ( 11, 'John' , $amount )";

  //Try 2 : Fails

  $Query  = "INSERT INTO dbo.testtable (id, name, amount) 
                                values ( 11, 'John' ,  CONVERT(FLOAT,'$amount') )";

如何在世界中将变量($amount)中的正确浮点值插入SQL Server?

1 个答案:

答案 0 :(得分:1)

使用它:

cast('$amount' as money)

更新: 它实际上取决于列amount的类型。如果它是varchar,它不应该为第一行引发错误。所以,我想这就像decimal(18, 2)。请参阅演示here

declare @amount varchar(25)
SET @amount = '1,000.00'

create table #tmp_money (amount FLOAT)
insert into #tmp_money
SELECT cast(@amount as money)

select * from #tmp_money