PostgreSQL: получение строк, дата которых старше 5 дней, чем payment_date - PullRequest
0 голосов
/ 27 июня 2018

В настоящее время мне нужно отправить электронное письмо всем пользователям, у которых есть 5 дней с истекшим сроком платежа по сроку истечения срока платежа и статусом = 1 (в ожидании платежа) для текущего месяца и года, поскольку у них могут быть будущие даты или прошедшие даты. пример

due_date = 27/06/2018 отправить письмо через 5 дней 1/05/2018

Мой запрос на захват всех пользователей с интервалом в 5 дней выглядит следующим образом:

SELECT payments_payment.id, payments_payment.due_date 
FROM payments_payment 
WHERE payments_payment.due_date < NOW() - '5 day'::interval
AND payments_payment.status = 1
AND EXTRACT(year FROM payments_payment.due_date) = EXTRACT(year FROM NOW())
AND EXTRACT(month FROM payments_payment.due_date) = EXTRACT(month FROM NOW())
ORDER BY payments_payment.due_date ASC;

1 Ответ

0 голосов
/ 27 июня 2018

Нужно использовать другой подход, поскольку вопрос обратный, по этой причине мне нужно получить разницу между двумя датами и посмотреть, совпадает ли это с моим дневным лимитом, вот запрос.

Запрос PostgreSQL:

SELECT due_date
FROM   payments_payment 
WHERE  payments_payment.due_date + interval '5 day' < current_date
AND payments_payment.status = 1

Объяснение

Получить все даты платежей, когда статус равен 1, а месяц равен текущему месяцу, а год, когда значение due_date, вычтенное на текущую дату, равно 5 дням.

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