【发布时间】:2015-03-05 08:33:44
【问题描述】:
您好,我在 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 以便函数之间可以正确比较?
编辑:使用字符串而不是如下日期:
StartDateFormatted = Format(StartDate,"dd/mm/yyyy")
EndDateFormatted = Format(EndDate,"dd/mm/yyyy")
以便确定开始日期和结束日期的格式。还是不行。
我只能假设两件事:
BETWEEN 仅比较 mm/dd/yyyy 格式
我必须使用函数将 [Date] 格式化为 mm/dd/yyyy
感谢@Maciej Los 回答我的问题。
【问题讨论】:
-
不知道是否有帮助,但找到了一篇关于转换功能的文档:即格式(现在,“MM/dd/yyyy”)udemy.com/blog/vba-format-date
-
:/ 我刚才读过!
-
但是,由于列应该是日期字段,格式不应该对比较有任何影响,还是我错了!?
[Orders].[Date]是否可能是另一种类型(可能是文本)? -
我会执行“select getDate()”并观察返回的格式,然后在查询中使用该格式。另一件事是他的日期格式是数据库的本地化设置。
-
@MaciejLos,这是其中之一,仅仅因为你可以并不意味着你应该在我的书中做事。