access sql日期格式不一致

7tofc5zh  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(313)

目前,我的数据库中有一个表,用于跟踪服务的开始日期和结束日期。我需要比较用户输入的日期,看看它是否在开始日期和结束日期之间。我现在的问题是,在表中,访问开始日期为 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 同时返回条目?

j2datikz

j2datikz1#

如果这是vba查询,那么您的观察结果是正确的。在查询设计器中,这些将按预期工作。
在这里回顾艾伦·布朗的精彩解释;http://allenbrowne.com/ser-36.html 以及解决方案。

pgpifvop

pgpifvop2#

您的查询应使用“反向”us序列或iso序列:

SELECT * FROM table WHERE #2018/01/09# BETWEEN startDate AND endDate

或者,如果您从代码构建它:

SearchDate = SomeDateValue
SQL = "SELECT * FROM table WHERE #" & Format(SearchDate, "yyyy\/mm\/dd") & "# BETWEEN startDate AND endDate"

或者,如果你一直在寻找今天:

SQL = "SELECT * FROM table WHERE Date() BETWEEN startDate AND endDate"

相关问题