我是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?
答案 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