SQL datediff = N在哪里不起作用

时间:2016-05-27 11:40:09

标签: sql-server datediff

为什么第二个选择不返回结果?它是相同的查询,但看起来像DATEDIFF在where子句中不起作用。

SELECT proposedend, DATEDIFF(day,ProposedEnd, GETDATE())
FROM Campaign
WHERE CampaignId = '2AB915AF-48CD-E431-BEE2-4EF3FC563A54'

Query Result

SELECT C.CampaignId, 'test@test.test' 
FROM Campaign C
WHERE DATEDIFF(day,ProposedEnd, GETDATE()) = 1 AND C.TypeCode = 2

1 个答案:

答案 0 :(得分:0)

可能有两种情况导致结果未到来:

案例1:

如果DATEDIFF(day,ProposedEnd, GETDATE()) = 1 为真 那么C.TypeCode = 2 false ,因为你已经使用了运算符,这就是为什么你没有得到输出。

案例2:

C.TypeCode = 2 true ,但DATEDIFF(day,ProposedEnd, GETDATE()) = 1 false ,因为您的proposedend日期超过1天或当前日期,因此条件将在这种情况下总是假的。