在insert语句中使用强制转换

时间:2011-02-15 11:40:10

标签: sql sql-server-2005

我将一些原始数据从excel插入到MS SQL 2005中的表中。 其中一些数据格式不正确,即数量colum格式为数字12345,而我需要像123.45所以我用这个 CAST(TRANSACTION_HISTORY.AMOUNT AS decimal) / 100 正确转换它。 但是有没有办法在insert语句中使用强制转换?

感谢

2 个答案:

答案 0 :(得分:5)

您可以在使用数据的任何类型的语句(插入,更新,删除,选择)中使用 CAST

Insert into table1 values( CAST(col1 as nvarchar(50)) )

答案 1 :(得分:1)

我假设您正在使用链接服务器或openquery从excel获取数据。您可以在select语句中进行强制转换。

所以

INSERT INTO YourTable
SELECT Cast(Transaction_History.Amount AS Decimal)/100
FROM EXCELLINK...[$Sheet1]

您也可以在执行导入后更新表中的所有值

UPDATE YourTable
SET YourColumn = YourColumn/100