You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB.NET中OleDbCommand用=匹配日期返回空表问题求助

问题原因及解决办法

核心原因

你的dat_recep字段应该是日期时间类型(带时分秒),而你用=#10/14/2022#查询时,这个日期会被解析为10/14/2022 00:00:00。但数据库里的记录实际存储的是包含具体时分秒的完整时间(比如10/14/2022 09:15:30),两者无法完全匹配,所以返回空表。

而用>、<、<>时,范围查询会自动包含当天所有带时间的记录,所以能正常返回结果。

可行解决办法

如果你要匹配10/14/2022当天的所有记录,不用范围查询的话,可以针对OleDb常用的场景(如Access、Excel)用日期截断函数:

  • Access数据库:用DateValue()提取纯日期部分
    SELECT * FROM table1 WHERE DateValue(dat_recep) = #10/14/2022# ORDER BY dat_recep DESC
    
  • 如果是要匹配某个精确到时分秒的时间点,需要完整写出时间:
    SELECT * FROM table1 WHERE dat_recep = #10/14/2022 09:15:30# ORDER BY dat_recep DESC
    

内容的提问来源于stack exchange,提问作者Mika

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 05:50:34