У меня есть запрос на отправку электронной почты с использованием хранимой процедуры, которая будет отправлять электронную почту, когда определенная дата (дата закрытия в моем случае) равна -1 или -2 от текущей даты для некоторого электронного письма.
Iиспользую планировщик задач, потому что я не просто запускаю этот запрос, но и другой запрос;Планировщик работает с понедельника по пятницу.
Например, если дата закрытия - 11 октября 2019 года (пятница), электронное письмо будет отправлено 9 октября 2019 года (среда) и 10 октября 2019 года (четверг).
Запрос ниже работает нормально, если дата закрытия - среда, четверг или пятница;у меня вопрос, как улучшить запрос, если дата закрытия перекрывает выходные.
Например, если дата закрытия 14 октября (понедельник), я хочу отправить электронное письмо 10 октября (четверг)и 11 октября (пятница).
Или, если дата закрытия 15 октября (вторник), электронное письмо будет отправлено 11 октября (пятница) и 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)
-> эта дата и время возврата из другой функции