SQL DATEADD/WHERE 语法

SQL DATEADD/WHERE syntax

我的 WHERE 语句抱怨时遇到了一些问题。我已经声明了一个名为@StartDate 的变量,其数据类型为 DATE,因为我不需要时间。我将根据过去 30、60、90 等天的订单数量多次更新临时 table,但在单独的语句中进行更新。

    UPDATE #TempTable SET Q30Day = Count(*)  
    FROM #TempTable
    SET @StartDate = DATEADD(DAY, -30, CAST(GETDATE() as DATE))
    WHERE PaidTime >= @StartDate

WHERE 语句在抱怨,说“INCORRECT SYNTAX NEAR 'WHERE'”但我不确定为什么。

你只是把事情弄乱了,顺序错了:-

SET @StartDate = DATEADD(DAY, -30, CAST(GETDATE() as DATE))    
UPDATE #TempTable SET Q30Day = Count(*)  
FROM #TempTable
WHERE PaidTime >= @StartDate