MS Access:从日期时间值返回特定日期的查询

Posted

技术标签:

【中文标题】MS Access:从日期时间值返回特定日期的查询【英文标题】:MSAccess: Return query for specific date from datetime value 【发布时间】:2019-03-26 19:12:41 【问题描述】:

我正在尝试从 MS SQL Server 中具有日期时间字段的链接表运行查询。我正在尝试运行一个简单的查询来搜索特定日期的记录 (#03/24/2018#),但由于 datetime 字段也有时间,除非我使用 BETWEEN 指定时间范围,否则我没有得到任何记录时间(Between #03/24/2018 00:00:00 AM# And #03/24/2018 11:59:59 PM#)。

未返回所需输出的原始查询:

SELECT *
WHERE MyDateTimeField) = #3/24/2018#;

查询

SELECT *
WHERE MyDateTimeField) Between #3/24/2018 00:00:00 AM# And #3/24/2018 23:59:59#);

是否有解决方法,不必在时间上使用 BETWEEN 运算符?

【问题讨论】:

【参考方案1】:

为避免时间部分,请检查MyDateTimeFieldequal/大于搜索日期和小于第二天:

SELECT *
FROM MyTable
WHERE 
    MyDateTimeField >= #3/24/2018# 
  AND 
    MyDateTimeField < DateAdd("d",1,#3/24/2018#);

与将MyDateTimeFieldto date 转换相反,这不会阻止索引使用和handlesNullValues onMyDateTimeField

【讨论】:

以上是关于MS Access:从日期时间值返回特定日期的查询的主要内容,如果未能解决你的问题,请参考以下文章

ms-access:仅显示特定日期内记录的报告

在 MS Access SQL 查询中从普通日期转换为 unix 纪元日期

查询未在MS-Access中使用日期条件

iif 日期超过两次 MS-Access [关闭]

日期转换错误——MS Access前端查询sql后端

通过运行 SQL 查询在 MS Access 2012 上更改年份日期格式的错误