我正在处理一个sql语句,在该语句中,我尝试获取少于或等于开发日期的所有项目。但是,我遇到了一个错误
“条件表达式中的数据类型不匹配”
我已经搜索了,但是找不到任何东西。
原始结果与此类似:
| Title | devTerm | pilotTerm |
+-------+---------+-----------+
| Ex1 | 201401 | 201404 |
| Ex2 | 201301 | 201401 |
| Ex3 | 201504 | 201601 |
这是我的查询:
SELECT *
FROM projects
WHERE Len(devTerm)>0
AND Len(pilotTerm)>0
AND Date() >= CDate(DateSerial(Left(devTerm,4),Right(devTerm,2),1))
我究竟做错了什么?
ps如果没有必要,我不会使用Access。
我正在引用本文:将文本转换为日期
截屏:
好的,我知道了问题所在。从我的问题下的评论中,我能够想到Nz()函数。最终查询看起来像
SELECT *
FROM projects
WHERE Date() >= DateSerial(Left(Nz(devTerm, "1990"),4),Right(Nz(devTerm, "01"),2), 1)
AND Date() < DateSerial(Left(Nz(pilotTerm, "1990"),4),Right(Nz(pilotTerm, "01"),2), 1)
pilotTerm和devTerm抛出NULL,这就是问题所在。我以为Access SQL会用它们过滤掉它们
Len(devTerm)>0
AND Len(pilotTerm)>0
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句