在 DATEADD 区间使用 case 表达式

fra*_*gue 1 sql sql-server case dateadd

是否可以在 DATEADD 间隔参数中使用 case 表达式?

select DATEADD(case c1 when 1 then HOUR when 2 then DAY end, c2, date) from T
Run Code Online (Sandbox Code Playgroud)

Update1:对不起,我想在 where 子句中使用它

select * from T where DATEADD(case c1 when 1 then HOUR when 2 then DAY end, c2, date) < GETDATE()
Run Code Online (Sandbox Code Playgroud)

也许还有另一种选择。

提前致谢,

Amn*_*oel 5

下面试试..

select * from T 
where case c1 when 1 then DATEADD(HOUR, c2, date) 
when 2 then DATEADD(DAY, c2, date) 
end < Getdate()
Run Code Online (Sandbox Code Playgroud)