如何在 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")
以便确定开始日期和结束日期的格式。还是不行。
我只能假设两件事:
Either BETWEEN only compares mm/dd/yyyy formats
我必须使用函数将 [Date] 格式化为 mm/dd/yyyy
感谢@Maciej Los 回答我的问题。
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" ).请查看快照商店。
您好,我在 VBA (MS ACCESS)
上使用 MS JET OLEDB 4.0SQL = "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")
以便确定开始日期和结束日期的格式。还是不行。
我只能假设两件事:
Either BETWEEN only compares mm/dd/yyyy formats
我必须使用函数将 [Date] 格式化为 mm/dd/yyyy
感谢@Maciej Los 回答我的问题。
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" ).请查看快照商店。