"标准表达式中数据类型不匹配"错误!。

cnssk 2008-06-18 10:19:54
select contract.*,
DateAdd('m', term, createdt),
DateDiff('d', date(),DateAdd('m', term, createdt))
from contract
where (createDT <> null)
and (term <> null)
and DateDiff('d', date(),DateAdd('m', term, createdt))>30

上面这个语句提示:标准表达式中数据类型不匹配.
但是不带最后一个条件就没有错
select contract.*,
DateAdd('m', term, createdt),
DateDiff('d', date(),DateAdd('m', term, createdt))
from contract
where (createDT <> null)
and (term <> null)
这样就没有错误
contract是个合同表,term是期限,单位是月,数据类型是数字,createdt是签订时间,现在就是要查询快到期的合同
...全文
103 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwwwb 2008-06-18
  • 打赏
  • 举报
回复
呵呵,自己解决更好
,

wwwwb 2008-06-18
  • 打赏
  • 举报
回复
检查这两个字段中是否有NULL、不规范的记录
cnssk 2008-06-18
  • 打赏
  • 举报
回复
哦,谢谢WWWWB,仔细检查了一下CreateDT有空字段
改成
select * from (select contract.*,
DateAdd('m', term, createdt) as enddate,
DateDiff('d', date(),DateAdd('m', term, createdt)) as days
from contract
where (createDT IS NOT null)
and (term IS NOT NULL) )
where days>30
就可以了
wwwwb 2008-06-18
  • 打赏
  • 举报
回复
OR 上传MDB到www.access911.net/csdn
用WINRAR压缩,只要有问题的表及查询
wwwwb 2008-06-18
  • 打赏
  • 举报
回复
select contract.*,
DateAdd('m', term, createdt),
DateDiff('d', date(),DateAdd('m', term, createdt))
from contract
where (createDT IS NOT null)
and (term IS NOT NULL)
and DateDiff('d', date(),DateAdd('m', term, createdt))>30

分开调试
DateAdd('m', term, createdt)有无问题,
select contract.*,DateAdd('m', term, createdt)

检查表内记录内容,特别是term, createdt内容

7,713

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧