您好我在VBA(MS ACCESS)上使用MS JET OLEDB 4.0
SQL = "SELECT COUNT(Date) FROM [Orders] WHERE [Orders].[Date] BETWEEN " & "#" & StartDate & "#" & " AND " & "#" & EndDate & "#"
[Date]的格式类似于f dd / mm / yyyy(法语),StartDate和EndDate的格式类似于mm / dd / yyyy(两个日期对象)。
我认为BETWEEN只比较格式为mm / dd / yyyy的日期,所以有没有像将日期格式转换为mm / dd / yyyy的功能,以便中间函数可以正确比较?
编辑:使用字符串代替以下日期:
StartDateFormatted = Format(StartDate,"dd/mm/yyyy")
EndDateFormatted = Format(EndDate,"dd/mm/yyyy")
以确保startdate和enddate格式。它还没有工作。
我还要承担两件事:
BETWEEN仅比较mm / dd / yyyy格式
我必须使用函数将[Date]格式化为mm / dd / yyyy
感谢@Maciej Los回答我的问题。
答案 0 :(得分:2)
始终使用ISO日期格式YYYY-MM-DD,您将没有任何问题。没有格式化。
答案 1 :(得分:1)
SQL = "SELECT COUNT(Date)" & vbcr & _
"FROM [Orders]" & vbcr & _
"WHERE [Orders].[Date] BETWEEN #Format(" & StartDate & "], 'MM/dd/yyyy')# AND #Format(" & EndDate & ",'MM/dd/yyyy')#"
答案 2 :(得分:1)