VBA传递date参数到SQL Server存储过程

我面临一个date参数从EXCEL VBA代码传递到SQL Server存储过程的问题。

存储过程采用两个date参数@FromDate@ToDate 。 从Excel我想执行此过程与从单元格中获取的date值。

问题在于,从单元格到过程的date是以"dd/mm/yyyy"的格式传递的,而不pipe我在Excel单元格中做什么格式更改。 而SQL过程则接受"yyyy-mm-dd""yyyy-mon-dd""yyyy/mm/dd""dd-mon-yyyy"格式。

该过程抛出一个错误:

“从date和/或时间转换date和/或时间从string转换失败”date从Excel中传递(格式“dd / mm / yyyy”

我使用的vba代码是(参考https://www.mssqltips.com/sqlservert…to-sql-server/ )

 Private Sub CommandButton1_Click() Dim FromDate As Date Dim ToDate As Date FromDate = Format(Sheets("Sheet1").Range("B1").Value, "yyyy-mm-dd") 'Pass value from cell B1 to SellStartDate variable ToDate = Format(Sheets("Sheet1").Range("B2").Value, "yyyy-mm-dd") 'Pass value from cell B2 to SellEndDate variable MsgBox FromDate MsgBox ToDate 'Pass the Parameters values to the stored procedure used in the data connection With ActiveWorkbook.Connections("TestConnection").OLEDBConnection .CommandText = "EXEC dbo.spr_TestProcedure '" & FromDate & "','" & ToDate & "'" ActiveWorkbook.Connections("TestConnection").Refresh End With End Sub. 

有没有办法以SQL Server过程接受的格式传递date? 如果没有其他选项,那么我将不得不select将我的过程参数types设置为varchars并将其转换为date。

感谢您的帮助!