SQL Server 2008中的datetime數據類型支持毫秒。ADO中SQL Server 2008 datetime的等效數據類型是什麼?
我正在嘗試執行一個存儲過程,該存儲過程接受以毫秒爲參數的datetime參數作爲輸入/輸出值。
我無法將傳入的字符串轉換爲方法作爲日期時間值。當我不傳入毫秒值時,轉換正確發生。
我在下面的方法中看到轉換問題。
Set objpara2 = objCom.CreateParameter("datetime", adDate, adParamInputOutput, , "2011-01-01 11:01:01.123")
哪些是ADO的SQL Server 2008的日期時間的數據類型等同?
下面是完整的代碼片段:
CREATE PROCEDURE [dbo].[TestProc] @time1 time, @datetime datetime output
as
begin
SET NOCOUNT ON;
select @datetime = datetime from ALLTimeTypes where time = @time1;
end
Private Sub Command1_Click()
Dim objCon As ADODB.connection
Dim objCom As ADODB.command
Dim objPara As ADODB.Parameter
Dim objpara2 As ADODB.Parameter
Dim objRS As ADODB.Recordset
Dim k As Integer
Set objCon = New ADODB.connection
Set objCom = New ADODB.command
objConConnectionString = "Provider=SQLNCLI10;" _
& "Data Source=ES-89W87BS;" _
& "Database=MASTER;" _
& "Integrated Security=SSPI;" _
& "DataTypeCompatibility=80;" _
& "User ID=sa;" _
& "Password=<redacted>;"
objCon.ConnectionString = objConConnectionString
objCon.Open
MsgBox "Connection opened"
With objCom
.CommandText = "TestProc" 'Name of the stored procedure
.CommandType = adCmdStoredProc 'Type : stored procedure
.ActiveConnection = objCon.ConnectionString
End With
Set objPara = objCom.CreateParameter("time1", adVarChar, adParamInput, 50, "02:02:02.3456123")
Set objpara2 = objCom.CreateParameter("datetime", adDate, adParamInputOutput, , "2011-01-01 11:01:01")
objCom.Parameters.Append objPara
objCom.Parameters.Append objpara2
Set objRS = objCom.Execute
objRS.Open
Do While Not objRS.EOF
For k = 0 To objRS.Fields.Count - 1
Debug.Print objRS(k).Name & ": " & objRS(k).Value
Next
objRS.MoveNext
Loop
...
這不僅僅是一個片段。你應該儘量減少你的問題,以證明你的問題所需的最低限度,所以我們不必閱讀所有的東西。這也會使你不太可能無意中在互聯網上發佈你的'sa'密碼。 – 2011-05-25 16:13:15
爲什麼哦爲什麼你使用「DataTypeCompatibility = 80;」 ???????? – 2011-06-01 18:20:20