如何在 SQL 查询中格式化日期?

How to format date in a SQL query?

您好,我在 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 格式的日期,所以有没有像函数一样的方法将 [Date] 格式转换为 mm/dd/yyyy 以便 between 函数可以正确比较?

编辑:使用字符串代替日期,如下所示:

StartDateFormatted = Format(StartDate,"dd/mm/yyyy")
EndDateFormatted = Format(EndDate,"dd/mm/yyyy")

以便确定开始日期和结束日期的格式。还是不行。

我只能假设两件事:

感谢@Maciej Los 回答我的问题。

使用Format function.

SQL = "SELECT COUNT(Date)" & vbcr & _
"FROM [Orders]" & vbcr & _
"WHERE [Orders].[Date] BETWEEN #Format(" & StartDate & "], 'MM/dd/yyyy')# AND #Format(" & EndDate & ",'MM/dd/yyyy')#"

始终使用 ISO 日期格式 YYYY-MM-DD,您不会有任何问题。没有格式化。

我在使用 Between 时从查询的 SQL 编译中注意到,它将它变成 MM/DD/YYYY 并且直到我使用 Format(startdate, "mm/dd/yyyy" ).请查看快照商店。