MS SQL操作数类型冲突:日期与bigint不兼容



我正在尝试使用我读到的Tabhibitosan方法解决HackerBank上的一个问题。如果你想阅读这个问题,这里有一个链接:https://www.hackerrank.com/challenges/projects/problem

以下是我的错误:第1行操作数类型冲突:日期与bigint 不兼容

这是我的代码:

SELECT MIN(start_date), MAX(end_date)
FROM (
SELECT
start_date, end_date,
dense_rank() OVER (ORDER BY start_date) AS rn,
start_date - dense_rank() OVER (ORDER BY start_date) AS grouping
FROM projects
) AS r
GROUP BY grouping
ORDER BY COUNT(*) ASC, MIN(start_date) ASC;

我的代码可能还有其他问题,但你不需要修复这些问题,因为我仍在学习和解决问题,但我无法解决这个错误,搜索也没有帮助。

表:

Task_ID, Int
Start_date, date
End_date, date

日期格式:2015-10-31

我不确定为什么代码不起作用,因为目标基本上与我发现Tabhibitosan方法的日期部分相同:https://community.oracle.com/docs/DOC-915680

问题是start_date - dense_rank() OVER (ORDER BY start_date)。错误告诉你这里的问题;但是不能从date中减去bigint值。您需要使用DATEADD。因此,将上面的表达式替换为:

DATEADD(DAY,-(dense_rank() OVER (ORDER BY start_date)),start_date)

最新更新