之间的日期总和,T-SQL 错误

Sum of Dates between, T-SQL error

我正在尝试检查 join_date 或 date_of_change(日期字段)之一是否在范围内并对其进行计数,但出现错误:

sqlserver.jdbc.SQLServerException: The conversion from int to TIMESTAMP is unsupported.

SUM(CASE WHEN (join_date BETWEEN DATEADD(day, -8, GETDATE()) AND DATEADD(day, -1, GETDATE())) OR (date_of_change BETWEEN DATEADD(day, -8, GETDATE()) AND DATEADD(day, -1, GETDATE())) THEN 1 ELSE 0 END) AS Total

有人可以向我解释我做错了什么吗。

原码:

  SELECT DISTINCT mtype, CASE WHEN (join_date BETWEEN DATEADD(day, -8, 
GETDATE()) AND DATEADD(day, -1, GETDATE())) OR (date_of_change BETWEEN 
DATEADD(day, -8, GETDATE()) AND DATEADD(day, -1, GETDATE())) THEN 1 ELSE 0 
END AS Total FROM T0 GROUP BY mype, join_date,date_of_change

正如@Alex K 所说,批处理中可能有另一个语句导致问题,因为此查询中似乎没有涉及任何时间戳。

回答您关于 GROUP BY 的最后评论,您可以通过以下方式简化查询:

SELECT 
    mtype, COUNT(1) as Total
FROM 
    T0 
WHERE 
    (join_date BETWEEN DATEADD(day, -8, GETDATE()) AND DATEADD(day, -1, GETDATE())) 
    OR (date_of_change BETWEEN DATEADD(day, -8, GETDATE()) AND DATEADD(day, -1, GETDATE())) 
GROUP BY 
    mype

但是我怕如果错误是在不同的语句中。

我重新写了查询,它成功了,一定是某处打错了