blo*_*ter 1 sql sql-server dateadd
我知道为什么我会看到这个错误,这是因为我的一些错误locationDeletionDate是“9999-12-31 00:00:00.0000000”,并且将 90 天添加到locationDeletionDate(正如我在查询中所做的那样)会导致标题中的错误:
...WHERE
(bpj.JobStatus = 'Live')
AND (l.locationEffectiveDate <= SYSDATETIME())
AND (dateadd(d,90,l.locationDeletionDate) >= SYSDATETIME())...
Run Code Online (Sandbox Code Playgroud)
我想我需要的是CASE我的WHERE-clause 中的条件,以确保添加 90 天后日期不会出错?或者有更优雅的方式吗?
您可以使用这种方法来解决您的问题
...WHERE
(bpj.JobStatus = 'Live')
AND (l.locationEffectiveDate <= SYSDATETIME())
AND (l.locationDeletionDate >= dateadd(d, -90, SYSDATETIME())...
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您还解决了性能问题。您的谓词变为 SARGable。
| 归档时间: |
|
| 查看次数: |
1431 次 |
| 最近记录: |