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

使用MDB Viewer Plus操作Access数据库时,DateDiff值与整数比较出现数据类型不匹配错误的求助

MDB Viewer Plus操作Access数据库时,DateDiff值与整数比较出现数据类型不匹配错误的求助

嘿各位大佬,我最近遇到个头疼的问题想请教下!

我正在用MDB Viewer Plus处理一个Access格式的.mdb数据库,需求是从list3表里提取缓刑相关的日期数据,顺便计算几个衍生指标:缓刑总时长(月数)、一半时长的整数月数、缓刑中点日期,还有中点日期到现在的月数。

先给大家看我原本能正常运行的查询代码,跑出来的结果都是准确的:

select ReceiptDate,SupervisionTerminationDate 
, DateDiff("m",[ReceiptDate],[SupervisionTerminationDate]) as ProbationLength
, int(ProbationLength/2) as HalfProbationLength
, DateAdd("m",HalfProbationLength,[ReceiptDate]) as HalfProbationDate
, int(DateDiff("m",HalfProbationDate,NOW())) as HalfProbationMonthsTillNow
from list3
where len([SupervisionTerminationDate]) > 0 and len([ReceiptDate]) > 0

现在的问题来了:我想在WHERE子句里加一个筛选条件,比如只保留缓刑时长超过24个月的记录,于是我加了and DateDiff("m", [ReceiptDate], [SupervisionTerminationDate]) > 24,结果直接弹出数据类型不匹配的错误!

我自己已经做了一些排查:

  • 确认ReceiptDate和SupervisionTerminationDate都是日期类型,而且原WHERE条件已经过滤掉了空值的记录
  • 原查询里的ProbationLength计算完全正常,能得到正确的整数结果
  • 试过把DateDiff的结果用int()包起来再比较,比如and int(DateDiff("m", [ReceiptDate], [SupervisionTerminationDate])) > 24,但还是报同样的错

实在搞不懂哪里出问题了,有没有大佬遇到过类似的情况?或者知道MDB Viewer Plus对Access SQL的函数支持有什么特殊的坑吗?

备注:内容来源于stack exchange,提问作者TARKUS

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.15 11:48:08