使用DATEADD(),但仅当年份不是9999时

Ala*_*ira 3 sql-server

我试图执行SQL查询:

SELECT * 
FROM MyTable
WHERE GETDATE() AS CurrentDateTime < DATEADD(day, 1, EndDateTime)
Run Code Online (Sandbox Code Playgroud)

问题是一些EndDateTime的日期可能最多,当我尝试运行此查询时,我收到一个错误: Adding a value to a 'datetime' column caused an overflow.

如果日期有一年9999,我知道如何使用EndDateTime本身而不是EndDateTime + 1天?

Gor*_*off 7

按其他顺序执行逻辑:

SELECT * 
FROM MyTable
WHERE EndDateTime > DATEADD(day, -1, GETDATE() );
Run Code Online (Sandbox Code Playgroud)

这也更好,因为查询可以利用其第一个键是的索引EndDateTime.