vb.net - 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 不起作用?
解决方案
始终将日期处理为日期,而不是字符串,不是数字,没有例外。
并且在编写 SQL 时,请使用正确的语法。日期值的文本表达式必须类似于 mm/dd/yyyy 或 yyyy/mm/dd。
您确实使用了 dd/mm/yyyy,因此您的日期被读取为 2018-02-08。所以使用:
CDate([a.acdate]) <= #2018/08/02#
并且您的查询将按预期运行。
推荐阅读
- macos - crontab 在 MacOS 上无法正常运行
- java - 假装客户端异常重试
- c# - 如何将 T-SQL 转换为 Linq C#
- vb.net - 以编程方式更新 DataSet 结构
- ruby-on-rails - 如何将属性添加到 ransackable_attributes(:admin)
- reactjs - ReactJS:在useEffect中获取时超出最大更新深度错误
- reactjs - 我已经渲染了列表获取 API,但是如何将列表数据索引传递给子组件?
- kubernetes - 使用公共 IP 启动 Kubernetes 集群
- python - Selenium 不执行点击操作
- c# - 在 ClickOnce 安装期间包括第三方安装