Отправка электронной почты с использованием SQL Server с проверкой до определенной даты - PullRequest
0 голосов
/ 13 октября 2019

У меня есть запрос на отправку электронной почты с использованием хранимой процедуры, которая будет отправлять электронную почту, когда определенная дата (дата закрытия в моем случае) равна -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) -> эта дата и время возврата из другой функции

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...