目前,我有一张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
答案 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")