"Data Type Mismatch in criteria expression" 在 MS-Access 中 SQL

"Data Type Mismatch in criteria expression" in MS-Access SQL

MS-Access SQL下面的查询returns一个"Data Type Mismatch in criteria expression"错误

SELECT DateSerial(2016,Month(DOB),Day(DOB)) AS AnnDate
FROM DonorMaster WHERE  DateSerial(2016,Month(DOB),Day(DOB)) > Date()

当 运行 没有 ">" 运算符时,它 运行 正确并且所有返回的行都有数据。

应该如何修复错误?

您的 table 很可能包含一个或多个 DOB 的空值。 这将引发错误。 重新设计您的查询,例如:

SELECT DateSerial(2016,Month(Nz(DOB, Date())),Day(Nz(DOB, Date()))) AS AnnDate
FROM DonorMaster 
WHERE DateSerial(2016,Month(Nz(DOB, Date())),Day(Nz(DOB, Date()))) >Date();