如何编写一个 sql 语句,该语句为日期值创建一个新列,然后在 WHERE 子句中查询它



我写了一个sql语句,如下所示:

SELECT * 
FROM (
SELECT DATEADD(dd, 60, PaymentDate) AS NewPaymentDate, * 
FROM MyTable
) x 
WHERE x.NewPaymentDate >=" & Date() & " 
AND Archived=0

但它正在回归

操作数类型冲突:日期与 int 不兼容

付款日期是数据库中的日期格式 - 但我是否必须将新日期列"NewPaymentDate"格式化为日期格式,如果是这样,我该怎么做?

谢谢

这看起来像SQL Server语法。 为什么需要传入当前日期? 只需使用数据库日期:

SELECT t.* 
FROM (SELECT DATEADD(day, 60, PaymentDate) AS NewPaymentDate, t.* 
FROM MyTable t
) t
WHERE t.NewPaymentDate >= CONVERT(DATE, GETDATE()) AND
t.Archived = 0;

如果要传入值,请学习使用参数传入值 - 语法因用于访问数据库的 API 而异。

最新更新