如何在Excel中更改日期以便日期将在SQL查询上运行?

时间:2016-06-14 22:09:14

标签: sql-server excel vba excel-vba

目前,我有一张Excel工作表,在其中我输入了一个开始日期和结束日期,它将转到VBA代码并在SQL查询中输入。我目前遇到的问题是我收到了一个错误:

  

ORA-01843不是有效月份,因为Excel将日期导入为05/01/2016且查询需要为05-may-2016

如何更改?

以下是开始日期和结束日期的代码:

startDate = Worksheets("Sheet1").Range("B4").Text
endDate = Worksheets("Sheet1").Range("B6").Text

dbConnectStr = "Provider=msdaora;User Id=" & Uname
dbConnectStr1 = "Provider=msdaora;User Id=xxendur ;Data Source=" & DSN

Set Sql.ActiveConnection = objmyconn
Sql.CommandText = "select system_date from syit_act_log where system_date between`enter code here` 'startDate' AND 'endDate' and action_id = 15 and log_desc not like '%svc_openlink_p%' order by system_date"
Sql.CommandType = adCmdText
Sql.Execute

1 个答案:

答案 0 :(得分:4)

您需要使用以下格式设置日期变量:

startDate = Format(Worksheets("Sheet1").Range("B4").Value2, "dd-mmm-yyyy")
endDate = Format(Worksheets("Sheet1").Range("B6").Value2, "dd-mmm-yyyy")
'startDate and endDate will be look like "05-May-2016"

三联mmm会根据您的要求为您提供月份名称。然后在查询中使用这些变量。

编辑:

正如Ralph和Jeeped建议的那样,建议使用yyyymmdd标准

startDate = Format(Worksheets("Sheet1").Range("B4").Value2, "yyyymmdd")
endDate = Format(Worksheets("Sheet1").Range("B6").Value2, "yyyymmdd")