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

