[英]Sum of Dates between, T-SQL error
我正在嘗試檢查join_date或date_of_change(日期字段)之一是否在范圍內,並對它們進行計數,但出現錯誤:
sqlserver.jdbc.SQLServerException:不支持從int到TIMESTAMP的轉換。
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
但是,如果錯誤在不同的語句中,則恐怕會出錯。
我再次寫了查詢,它有效了,一定是某個地方有錯字
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.