Vba 今天日期的访问日期查询问题

Vba 今天日期的访问日期查询问题,vba,ms-access,Vba,Ms Access,我有一组数据,其中包括一个名为ReleaseDate的字段,日期/时间的类型,在添加记录时使用NOW写入 我可以打开表并过滤今天的日期,得到152条记录的结果 我可以运行以下查询,在提示中输入今天的日期,还可以得到152条记录的结果 选择ProductData.ReleaseDate、ProductData.Shift、ProductData.ExtrusionLine、ProductData.RollDensity 来自ProductData 其中ProductData.ReleaseDate

我有一组数据,其中包括一个名为ReleaseDate的字段,日期/时间的类型,在添加记录时使用NOW写入

我可以打开表并过滤今天的日期,得到152条记录的结果

我可以运行以下查询,在提示中输入今天的日期,还可以得到152条记录的结果

选择ProductData.ReleaseDate、ProductData.Shift、ProductData.ExtrusionLine、ProductData.RollDensity 来自ProductData 其中ProductData.ReleaseDate介于[请输入开始日期mm/dd/yyyy]&&1899年12月30日和[请输入结束日期mm/dd/yyyy]&&1899年12月30日23:59:59之间; 如果运行以下查询,则不会检索任何记录。我不明白为什么

选择ProductData.ReleaseDate、ProductData.Shift、ProductData.ExtrusionLine、ProductData.RollDensity 来自ProductData 其中ProductData.ReleaseDate=日期; 从我所读到的日期作为标准,应该返回任何带有今天日期的记录。提示输入日期不是一个选项。

这是因为ReleaseDate包含从现在开始的时间部分。你可以脱掉它:

WHERE Fix(ProductData.ReleaseDate) = Date();

除了Gutav的答案,更好地使用:

其中ProductData.ReleaseDate>=日期,ProductData.ReleaseDate因为这样可以更快地使用ProductData.ReleaseDate上的索引。请在

上查看我的答案。请格式化查询,例如,并将其显示为代码,就像古斯塔夫为您所做的那样。您引导我走上了正确的道路,谢谢。从ProductData中选择DateValue[ReleaseDate]作为JustDate、ProductData.Shift、ProductData.ExtrusionLine、ProductData.RollDensity,其中DateValue[ReleaseDate]=Date;这并没有解决我的问题。是的。在这里,DateValue与Fix的作用相同,只是Fix是SQL的原生版本。Fix和DateValue之间似乎有区别,因为Fix不适用于MySQL中的链接表,而适用于本地表。Fix可以处理Null值返回Null,DateValue不能。@ComputerVersteher:你可能有道理。如果字段正确链接为DateTime,则修复将始终有效。如果字段链接为文本,DateValue将起作用,因为它将文本转换为DateTime。不知道这里是否应该是这种情况,但是日期/时间字段应该始终是数据类型DateTime,没有例外。没有字段链接为日期/时间。因此,现在我知道我可以使用TimeValue将时间部分从ReleaseDate拉入字段。如果我想索引ReleaseDate,是否应该使用类似的标准?最终目标是查询当前轮班期间提交的所有记录。班次为早上7点到下午3点,下午3点到晚上11点,以及晚上11点到早上7点。第三班将更难,因为查询只能在晚上11点到凌晨12点之间提取今天的记录。上午12点后,查询需要返回今天的记录和昨天最后一个小时的记录。班次信息属于问题而不是评论!如果需要,我可以更新我的答案,但是您可以使用ProductData.ReleaseDate>=ShiftsStartDateTime和ProductData.ReleaseDate