Fórum Cálculo dos Dias Vencidos Via Sql #351452
06/01/2008
0
Meu problema é o seguinte:
Preciso levantar as duplicatas que estão a ´X´ dias já vencidas a partir do seu vencimento, ou seja, data de vencimento 31/12/2007, hoje é 06/01/2008 então ela está vencida a 6 dias já. Esse é o valor que eu vou informar no sistema: DUPLICATAS VENCIDAS A MAIS DE: ´X´ dias...
Isso usando o MYSQL (versão 4.0.20d) como SGBD e via SQL. Alguém tem idéia de como eu posso fazer isso?
Estou fazendo (vencimento - current_date), mas me retorna também as duplicatas que tem vencimento entre 01/01 e 06/01 de 2008.
Informei a versão do MySql porque nessa versão não tem a função DATEDIFF(data1,data2).
Obrigado aos que puderem me ajudar.
Microbios
Curtir tópico
+ 0Posts
06/01/2008
Darkrme
talvez posa te ajudar, eu uso muito ela:
function DifDias(DataVenc:TDateTime; DataAtual:TDateTime): String; Var Data: TDateTime; dia, mes, ano: Word; begin if DataAtual < DataVenc then begin Result := ´A data data atual não pode ser menor que a data inicial´; end else begin Data := DataAtual - DataVenc; DecodeDate( Data, ano, mes, dia); Result := FloatToStr(Data); end; end;
Gostei + 0
06/01/2008
Microbios
Obrigado por sua ajuda. :wink:
Gostei + 0
06/01/2008
Joaoshi
SELECT * FROM DUPLICATAS
WHERE VENCIMENTO < (CURRENT_DATE - 6)
AND BAIXA IS NULL
Isto é só um começo, e pode ser melhorado com parametros.
Não conheço o MySql utilizei o CURRENT_DATE seguindo seu exemplo.
Espero ter ajudado.
Gostei + 0
06/01/2008
Microbios
Este modelo eu já havia tentado antes também. Funciona para o prazo de 6 dias de vencidas. Mas se aumentar o prazo, por exemplo pra 10 dias ou 15 dias não retorna nada. Pra 7 dias da ´DATA CORRENTE´ já não retorna nada. E listando sem separar nada, existem duplicatas vencidas com mais de 10 dias até.
Obrigado pela ajuda, vou continuar quebrando a cabeça ou esperando uma luz do pessoal. :wink:
Gostei + 0
10/01/2008
Djjunior
from tabela
group by (dtVencimento -sysdate) desc
having (dtVencimento -sysdate) >= Dias
Gostei + 0
11/01/2008
Microbios
Cara, legal, mas quais são as duplicatas? Esta Sql (que apresentava um errinho na cláusua having (era dias e não vencimento >= Xdias)) faz a contagem da duplicatas e apresenta a quantidade de dias. Eu preciso saber quais são elas, de que clientes... etc e tal.
:lol: :lol:
Valeu pela ajuda, continuamos tentando achar uma solução para tal problema.
Obrigadão!
Gostei + 0
11/01/2008
Djjunior
Sua query
SELECT * FROM DUPLICATAS WHERE VENCIMENTO < (CURRENT_DATE - :qtdeDias) AND BAIXA IS NULL
antes de abrir a query
query.close; query.parambyname(´qtdeDias´).asinteger := strtoint(edtPeriodo.Text); query.Open;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)