我正在使用VBA和存储过程将数据从Excel移动到SQL。我的一个字段Sensor_Measure是SQL中的数据类型Decimal(6,5)。存储过程如下:
Alter Procedure dbo.SP_Sensor
(
@Name varhchar(4),
@Sensor_D varchar(10)
)
Declare
@iSensor Decimal(6,5)
@iSensor=@Sensor
Insert into dbo.SensorTble Values(@Name,@iSensor )
我的VBA代码是这样的:
Dim Name, Sensor as String
Dim oName, oSensor as ADODB.Parameter
Name=ws.Cells(2,3)
Sensor=ws.Cells(4,5)
Set oSensor = cmd.CreateParameter("@Sensor_D", adVarChar, adParamInput, 30, Sensor)
cmd.Parameters.Append oSensor
cmd.Execute
在excel工作簿中,Sensor的数据点是
0.000121778
但是当它转到sql时它看起来像这样
1.21778
我应该看的是
0.00012
。我哪里错了。
答案 0 :(得分:0)
Excel正在向SQL发送1.223523515E-4,而SQL没有识别出E-4部分并且给了我1.22。所以我在Excel中做到了这一点:
SENSOR_ = Format(ws.Cells(4, 5), "0.######")
这解决了我的问题