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