【发布时间】:2018-01-08 17:01:22
【问题描述】:
我的数据库中目前有一个表,用于跟踪服务的开始日期和结束日期。我需要比较用户输入的日期,看看它是否在开始日期和结束日期之间。我现在的问题是,在表格中,访问开始日期为DD/MM/YYYY 的商店,我的表单中用户输入日期的文本框格式为DD/MM/YYYY。但是,一旦我点击 VBA 并运行 SQL 查询,它会将日期读取为MM/DD/YYYY。
我的查询是:
SELECT * FROM table WHERE #09/01/2018# BETWEEN startDate AND endDate
我的测试条目是:
表:
startDate endDate service
08/01/2018 02/02/2018 ABC
这应该返回这个条目,但是当它读取为MM/DD/YYYY时它不会。如果我输入 #13/01/2018# 它会返回该条目,因为它检测到 13 是日期并且不能是一个月。我该如何纠正这个问题,以便它需要 09/01/2018 并返回条目?
【问题讨论】:
-
您可以使用 Access 查询引擎可用的VBA's format function 以统一格式返回所有日期。示例:
Format(<Date Field / Date Var>, "yyyymmdd"). -
这很有趣,因为日期时间会遵循您计算机的区域设置。日期优先的区域应在所有 Access 对象中相应呈现:表、查询和模块。您的 date 字段可能是文本字段而不是日期时间。
-
如果您使用 format() 命令将日期更改为字符串,那么这在许多情况下都不起作用。请参阅下面答案中的链接。