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
相关产品推荐
相关产品推荐

