我有以下SQL
SELECT P1.Column1, P1.NextApprovalDate
FROM Procedures P1
WHERE DATESERIAL(YEAR(P1.NextApprovalDate), MONTH(P1.NextApprovalDate), 1 )
= DATESERIAL(YEAR(Date()), MONTH(DATE()) + 1, 1);
我收到错误,即“条件表达式中的数据类型不匹配”。我也尝试结合使用CDate和Format函数,但继续得到相同的错误。当我在那里选择标准时,SQL运行正常。如何格式化标准?
答案 0 :(得分:1)
确定。我得到了这个工作,但它有点像Access想要它的方式。 =符号从未用于比较。为什么我不知道。 BETWEEN工作了。如果有人能找到让'='工作的方法,请告诉我。感谢@Hansup让我指出了正确的方向。
SELECT P2.Column1, P2.NextApprovalDate
FROM (SELECT Procedures.Column1, Procedures.NextApprovalDate FROM
Procedures WHERE Procedures.NextApprovalDate IS NOT NULL) AS P2
WHERE DATESERIAL(YEAR(P2.NextApprovalDate),MONTH(P2.NextApprovalDate),1)
Between DATESERIAL(YEAR(Date()),MONTH(Date())+1,1) And
DATESERIAL(YEAR(Date()),MONTH(Date())+1,1);