为什么第二个选择不返回结果?它是相同的查询,但看起来像DATEDIFF在where子句中不起作用。
SELECT proposedend, DATEDIFF(day,ProposedEnd, GETDATE())
FROM Campaign
WHERE CampaignId = '2AB915AF-48CD-E431-BEE2-4EF3FC563A54'
SELECT C.CampaignId, 'test@test.test'
FROM Campaign C
WHERE DATEDIFF(day,ProposedEnd, GETDATE()) = 1 AND C.TypeCode = 2
答案 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天或当前日期,因此条件将在这种情况下总是假的。