簡體   English   中英

日期之間的總和,T-SQL錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM