之间的日期总和,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
但是我怕如果错误是在不同的语句中。
我重新写了查询,它成功了,一定是某处打错了
我正在尝试检查 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
但是我怕如果错误是在不同的语句中。
我重新写了查询,它成功了,一定是某处打错了