我想通过查询选择数据的调度程序留下21,14,7,3,2,1天时发送认证到期时的电子邮件 。我正在使用ExpiryNotification位col.as一个标志(如以前用于仅在30天内发送)
查询中的数据是从scheduler中选取的。如果我必须在Query中进行更改以实现此逻辑,我将需要将col从bit更改为int并检查Notification col。但是如果Scheduler不运行时该怎么办?剩下21天是因为一些奇怪的原因然后会发生什么。是否还有其他方法可以通过sql server实现这个逻辑?
发送邮件时,它会将ExpiryNotification col值设为1
现有查询(仅检查30天)
Select * from wsm_certification
where
(DATEDIFF(d, GETDATE(), wsm_Certification.RenewalDate) = 30
and wsm_Certification.ExpiryNotification = 0)
你可以尝试这样的事情
(DATEDIFF(d, GETDATE(), wsm_Certification.RenewalDate) = 21 OR (DATEDIFF(d, GETDATE(), wsm_Certification.RenewalDate) = 14
在运算符中使用以检查多个值例如:
从wsm_certification中选择*其中(21,14,7,3,2,1)中的(DATEDIFF(d,GETDATE(),wsm_Certification.RenewalDate)和wsm_Certification.ExpiryNotification = 0)