首页 > 解决方案 > Ms Access 查询中的日期过滤(有趣)

问题描述

它看起来像样品,但我找不到这是什么?

这是我想要的最终结果=>

在此处输入图像描述

这是我的查询=>

 Select 
a.staffname,
a.staffno,
a.cntname 
From [Clisys] a 
where 
CDate([a.acdate]) <= #02/08/2018# and  
CntNo='H0128C' and 
[a.JobCode] like '1**/2018' and 
[a.acdate] is Not Null

但问题是当我这样选择时,我什么也得不到。但是当我改变那样的原因时=>

 where 
    CDate([a.acdate]) <= #02/08/2019# and  
    CntNo='H0128C' and 
    [a.JobCode] like '1**/2018' and 
    [a.acdate] is Not Null

我得到了我想要的。但是为什么如果我选择 2018 不起作用?

标签: vb.netms-access

解决方案


始终将日期处理为日期,而不是字符串,不是数字,没有例外。

并且在编写 SQL 时,请使用正确的语法。日期值的文本表达式必须类似于 mm/dd/yyyy 或 yyyy/mm/dd。

您确实使用了 dd/mm/yyyy,因此您的日期被读取为 2018-02-08。所以使用:

CDate([a.acdate]) <= #2018/08/02#

并且您的查询将按预期运行。


推荐阅读