在 Access 2007 中使用 Dateserial 比较日期 SQL
Compare dates using Dateserial in Access 2007 SQL
我有以下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);
我收到一个错误 "Data type mismatch in criteria expression"。我也尝试结合使用 CDate 和 Format 函数,但仍然出现相同的错误。当我在那里选择条件时,SQL 运行良好。标准应该如何格式化?
好的。我让它工作了,但 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);
我有以下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);
我收到一个错误 "Data type mismatch in criteria expression"。我也尝试结合使用 CDate 和 Format 函数,但仍然出现相同的错误。当我在那里选择条件时,SQL 运行良好。标准应该如何格式化?
好的。我让它工作了,但 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);