Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
pessoal blllll
to precisando listar no banco uns registro com renovação próxima de vencer.
EX: tenho um Cliente cadastrado em 01/05/2020 preciso selecionar ele proximo da renovação do contrato que se dar apos 6 meses ou 180 dias, dessa data que foi cadastrado.
SELECT * FROM tb_renovaçao where DATE_ADD(data_pgto, INTERVAL 180 DAY)");
// ou seja no caso ai estou selecionando registro que estão com data de 180 dias da data que fiz o cadastro.
mas ele não retorno os registros dentro do prazo.
ola Williams blll,
fiz esse SELECT mas não voltou registros algum
SELECT * FROM tb_renovacao WHERE data_pgto = DATE_ADD(CURDATE(), INTERVAL 6 month)
nesse caso ai estou trazendo apenas datas acrescentadas de 6 meses ou 180 dias certo ? com base no meu campo data que esta gravado, detalhe meu campos esta com formato VARCHAR.Normalize seu banco, data ou é date, datetime ou timestamp etc, menos varchar.
ou use strtotime para esta modificação da data!
$day = date('d-m-Y');
$newDate = date('d/m/Y', strtotime($day . " +6 month"));
echo $newDate; // 26/11/2020
SELECT * FROM tb_renovacao WHERE data_pgto = $newDateOlá @Williams Duarte aproveitando o post do amigo ai
Quando no banco de dados ele contem duas forma de pagamento
EX:
vencimento a cada 30 dias
vencimento por ano como posso apresentar
Neste caso como posso classificar das datas de 30 dias e 365 dias
>
9 horas atrás, Jack Oliveira disse:
Olá @Williams Duarte aproveitando o post do amigo ai
Quando no banco de dados ele contem duas forma de pagamento
EX:
vencimento a cada 30 dias
vencimento por ano como posso apresentar
Neste caso como posso classificar das datas de 30 dias e 365 dias
Frequentemente deixo algumas Schedules rodando!
docker run -d image_name '/30 * ___cmdstring___'
Se é uma recorrencia mensal, que vence daqui 7 dias, jogo em uma fila e disparo a cobrança. Um dia antes do vencimento, vejo quem ainda no pagou e disparo um outro aviso. 3 dias depois outro, nao pagou, dispara um aviso de bloqueio após alguns dias , isto você controla em flags no DB
Se a recorrencia é trimestral, semestral ou anual, não faz diferença na consulta, o importante é declarar no select, qual é o intervalo.
SELECT DATE_ADD( CURDATE(), INTERVAL 7 days );
SELECT DATE_ADD( CURDATE(), INTERVAL 1 days );
E fazer o filtro.
Obs, você tem que ter outros Jobs analisando cadastro etc, para nao ter erro nas cobranças, mas tudo depende das regras de negocios.
Aparentemente sua query esta errada, não tenho como testar no momento.
Mas o correto seria algo assim:
mysql> SELECT DATE_ADD( '2011-01-01', INTERVAL 6 month );
+--------------------------------------------+
| DATE_ADD( '2011-01-01', INTERVAL 6 month ) |
+--------------------------------------------+
| 2011-07-01 |
+--------------------------------------------+