增量负载问题

时间:2015-11-09 12:27:11

标签: sql sql-server sql-server-2008 tsql

我有这样的查询:

    SELECT Col1, Col2, Col3, ColDate
    FROM TableA
    WHERE DAY(ColDate) = 1 
       AND MONTH(ColDate) = MONTH(CASE WHEN DATEPART(HOUR, GETDATE()) < 16 THEN GETDATE() - 1 ELSE GETDATE()END)
       AND YEAR(ColDate) = YEAR(CASE WHEN DATEPART(HOUR, GETDATE()) < 16 THEN GETDATE() - 1 ELSE GETDATE()END)

上面的查询每天将数据提取到另一个表中。现在,此查询的问题是我们必须每天手动更改DAY(ColDate) =?子句中的WHERE以获取正确的数据。如何设置我的WHERE子句以检查该月的那一天并相应地提取数据?

1 个答案:

答案 0 :(得分:1)

这是你在找什么?

WHERE DAY(colDate) = DAY(GETDATE()) AND
      . . .

或者,或许:

WHERE DAY(colDate) = DAY(CASE WHEN DATEPART(HOUR, GETDATE()) < 16 THEN GETDATE() - 1 ELSE GETDATE() END) AND