gpt4 book ai didi

VBA中日期之间的SQL查询

转载 作者:行者123 更新时间:2023-12-02 07:52:40 27 4
gpt4 key购买 nike

我在使用 Excel 和 Access 数据库在 VBA 中进行 SQL 查询时遇到问题。在 mi VBA 代码中,我有两个包含以下内容的数据变量:

日期最小值 = 31/07/2014 22:00:00

日期最大 = 01/08/2014 06:00:00

我有一个访问数据库,其中包含许多带有日期字段的数据。我正在尝试从数据库中提取两个变量之间的日期数据,并且我正在编码:

sql = "SELECT Date FROM Table WHERE Date BETWEEN #" & DateMin & "# AND #" & DateMax & "#

但是不起作用。结果不正确,日期不在我的两个日期之间。

但是如果我改变句子并编码

sql = "SELECT Date FROM Table WHERE Date > #" & DateMin & "#

它有效!提供比 DateMin 日期更高的数据,但我没有 DateMax 来阻止它。我认为问题出在我的第一个代码的第二部分,因为如果我编码

sql = "SELECT Date FROM Table WHERE Date < #" & DateMax & "#

我没有数据!为什么不给我低于 DateMax 的数据?因此,我认为 BETWEEN 句子不起作用。

抱歉我的英语不好,我正在尝试更好地解释我所知道的。谢谢。

最佳答案

您应该始终使用明确日期格式。当您的日期格式为00/00/0000时,Access 必须猜测这是否是 dd/mm/yyyy (英国)或mm/dd/yyyy (美国)。

您的DateMin ( 31/07/2014 22:00:00 ) 只能解释为 dd/mm/yyyy hh:nn:ss ,(31 是无效月份,因此它必须是一天),因此这是 Access 将使用的格式。

但是,您的 DateMax ( 01/08/2014 06:00:00 ) 被解释为美国格式 - 为 8th January 2014而不是1st August 2014 .

解决此问题的最简单方法是以 ISO 格式提供日期 ( yyyymmdd ) 或以简短单词形式提供月份 ( dd mmm yyyy hh:mm:ss - 例如 01 Aug 2014 06:00:00 )

关于VBA中日期之间的SQL查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25058768/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com