特定号码时发送提醒邮件。剩下的几天哪个是查询SQL Server所徘徊的?

问题描述 投票:0回答:2

我想通过查询选择数据的调度程序留下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) 
sql-server email logic scheduled-tasks reminders
2个回答
1
投票

你可以尝试这样的事情

(DATEDIFF(d, GETDATE(), wsm_Certification.RenewalDate) = 21 OR (DATEDIFF(d, GETDATE(), wsm_Certification.RenewalDate) = 14

1
投票

在运算符中使用以检查多个值例如:

从wsm_certification中选择*其中(21,14,7,3,2,1)中的(DATEDIFF(d,GETDATE(),wsm_Certification.RenewalDate)和wsm_Certification.ExpiryNotification = 0)

© www.soinside.com 2019 - 2024. All rights reserved.