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

How do you write a sql statement that creates a new column for a date value and then queries it in the WHERE clause

我已经写了一个 sql 声明:

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

但它正在返回

Operand type clash: date is incompatible with int

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

谢谢

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

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而异数据库。