保留数据格式从vba到sql的十进制(6,5)

时间:2017-10-19 15:45:44

标签: sql sql-server vba sqldatatypes

我正在使用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

。我哪里错了。

1 个答案:

答案 0 :(得分:0)

Excel正在向SQL发送1.223523515E-4,而SQL没有识别出E-4部分并且给了我1.22。所以我在Excel中做到了这一点:

SENSOR_ = Format(ws.Cells(4, 5), "0.######")  

这解决了我的问题