sql - 使用 SQL Server 发送电子邮件并在特定日期之前进行检查
问题描述
我有一个使用存储过程发送电子邮件的查询,该存储过程将在某个日期(在我的情况下为截止日期)从某些电子邮件的当前日期为 -1 或 -2 时发送电子邮件。
我正在使用任务调度程序,因为我不仅不运行此查询,还运行另一个查询;调度程序从星期一到星期五运行。
例如,如果截止日期为 2019 年 10 月 11 日(星期五),则电子邮件将在 2019 年 10 月 9 日(星期三)和 2019 年 10 月 10 日(星期四)发送。
如果截止日期是星期三、星期四或星期五,则下面的查询可以正常工作;我的问题是,如果截止日期与周末重叠,如何改进查询。
例如,如果截止日期是 10 月 14 日(星期一),我想在 10 月 10 日(星期四)和 10 月 11 日(星期五)发送电子邮件。
或者如果截止日期是 10 月 15 日(星期二),则电子邮件将在 10 月 11 日(星期五)和 10 月 12 日(星期一)发送。
这是我的代码
SELECT
pv.email,
CONVERT(VARCHAR(17), dbo.getPQDocSubmissionClosingDate(pqh.process_id), 113) AS pq_doc_closing_date
FROM
prequalification_vendor pv
JOIN
prequalification_header pqh ON pv.prequalification_header_id = pqh.id
JOIN
proposal_header ph ON ph.tender_number = pqh.tender_number
WHERE
pv.pq_registration_status = 'Register'
AND pv.pq_docs_uploaded IS NULL
AND (DATEDIFF(DAY, dbo.getPQDocSubmissionClosingDate(pqh.process_id) , (SELECT CONVERT (DATE , GETDATE()))) = -2
OR DATEDIFF(DAY, dbo.getPQDocSubmissionClosingDate(pqh.process_id) , (SELECT CONVERT (DATE , GETDATE()))) = -1)
dbo.getPQDocSubmissionClosingDate(pqh.process_id)
--> this 从另一个函数返回日期时间
解决方案
推荐阅读
- node.js - 如何在 ES6 中将变量提升到所有导入之上?
- testing - 如何在没有外部文件的情况下从 apache 基准发送 json?
- python - 我正在制作一个“刽子手”游戏。在游戏中,我想添加生命并从 7 开始。0 生命的游戏结束。
- google-cloud-platform - 在 dialogflow webhook 中设置 http url
- knockout.js - 在单个 observableArray 中的 afterMove arg 上获取目标数据中的直接父元素
- java - 在 Java 中传播所有异常是什么意思
- java - JavaX MIDI - 使用自定义声音字体播放 MIDI 文件
- php - 跳过函数的参数值
- angularjs - 如何在angularjs spring mvc中重定向页面
- ios - 如何减少 UITabBarItem 图像和文本之间的垂直填充?