coopermine Postado Março 2, 2009 Denunciar Share Postado Março 2, 2009 Ola forum, Estou com um serio problema aki,(se é que é problema). tenho um bd com os seguintes campos... datavencimento - diasvencidos preciso montar uma query para preencher o bd todo com os dias vencidos usando o DATADIFF, pois minha tabela diasvencidos está vazia...desde já agradesço!Abraços... Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Março 2, 2009 Denunciar Share Postado Março 2, 2009 Oi,'coopermine' !A função DateDiff funciona como abaixo:DATEDIFF(expr,expr2), TIMEDIFF(expr,expr2)DATEDIFF() retorna o número de dias entre a data inicial expr e a data final expr2. expr eexpr2 são expressões de datas ou data e hora. Apenas a parte da data dos valores sã usados nocálculo.TIMEDIFF() retorna o tempo entre a hora inicial expr e a hora final expr2. expr e expr2são expressões de hora ou data e hora, mas ambas devem ser do mesmo tipo.Fonte: Manual do MySQL 4.1 seção 6.3.4. Funções de Data e HoraA instrução seria mais ou menos assim:UPDATE diasvencidos SET campo = DATEDIFF(data1, data2);Se precisar mais detalhes, especifique. Link para o comentário Compartilhar em outros sites More sharing options...
0 coopermine Postado Março 2, 2009 Autor Denunciar Share Postado Março 2, 2009 (editado) Oi,'coopermine' !A função DateDiff funciona como abaixo:DATEDIFF(expr,expr2), TIMEDIFF(expr,expr2)DATEDIFF() retorna o número de dias entre a data inicial expr e a data final expr2. expr eexpr2 são expressões de datas ou data e hora. Apenas a parte da data dos valores sã usados nocálculo.TIMEDIFF() retorna o tempo entre a hora inicial expr e a hora final expr2. expr e expr2são expressões de hora ou data e hora, mas ambas devem ser do mesmo tipo.Fonte: Manual do MySQL 4.1 seção 6.3.4. Funções de Data e HoraA instrução seria mais ou menos assim:UPDATE diasvencidos SET campo = DATEDIFF(data1, data2);Se precisar mais detalhes, especifique.obrigado pela resposta, ate ai eu consegui chegar!no meu caso a data1 seria o dia atual e a data2 seria a data de vencimento. o problema é que eu preciso calcular essa diferença em todo o bd e cada registro tem data de vencimento diferente, intende? por enquanto o campo diasvencidos dentro do bd mensalidades está vaziomais uma vez agradesço! Editado Março 2, 2009 por coopermine Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Março 2, 2009 Denunciar Share Postado Março 2, 2009 ...no meu caso a data1 seria o dia atual e a data2 seria a data de vencimento. o problema é que eu preciso calcular essa diferença em todo o bd e cada registro tem data de vencimento diferente, intende? por enquanto o campo diasvencidos dentro do bd mensalidades está vaziodata de vencimento é campo de sua tabela desta tabela ou outra tabela?dia atual é campo de sua tabela? se não for use NOW()Sem mais detalhes está difícil de ajudar. Link para o comentário Compartilhar em outros sites More sharing options...
0 coopermine Postado Março 2, 2009 Autor Denunciar Share Postado Março 2, 2009 sim é a data atual pela data que esta no bd na tabela vencimento... posso usar o now... a minha dificuldade esta sendo montar essa query que faça o update em todo bd.. Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Março 2, 2009 Denunciar Share Postado Março 2, 2009 sim é a data atual pela data que esta no bd na tabela vencimento... posso usar o now... a minha dificuldade esta sendo montar essa query que faça o update em todo bd..Passa um trecho com o select e com parte das estruturas das tabelas que você está trabalhando. Não precisa passar toda a estrutura da tabela e nem usar os nomes verdadeiros dos campos, mes precisa passar o tipo dos campos e quais indices são chave. Link para o comentário Compartilhar em outros sites More sharing options...
0 coopermine Postado Março 2, 2009 Autor Denunciar Share Postado Março 2, 2009 (editado) QUERY select codsistema, vencimento, diasvenc from mensalidade where baixa = "não";RESULTADO-------------------------------------------------------codsistema vencimento diasvenc 3 2009-03-02 0 4 2009-03-01 0 5 2009-02-02 0 6 2009-04-02 0 7 2009-03-02 0--------------------------------------------------------CODSISTEMA É A CHAVE PRIMARIA!Seria isso que você queria?PS: sempre lembrando.. preciso de uma query que calcule os dias vencidos pela data atual (now) e preencha o campo diasvenc de todo bd.mais uma vez grato! Editado Março 2, 2009 por coopermine Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Março 2, 2009 Denunciar Share Postado Março 2, 2009 Oi, 'coopermine' Usando seu exemplo teria:select codsistema, vencimento, datediff(now(), vencimento) as diasvenc from mensalidade where baixa = "não"; O exemplo acima só mostra o resultado que você quer. Para atualizar os danos na tabela de modo que você possa usar o SEU select, seria assim:UPDATE mensalidade set diasvenc = datediff(now(), vencimento) where baixa = "não";TESTA ANTES DE FAZER O UPDATE.Faça backup antes para evitar caca.Não me responsabilizo por erros em seus dados. Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
coopermine
Ola forum,
Estou com um serio problema aki,(se é que é problema).
tenho um bd com os seguintes campos...
datavencimento - diasvencidos
preciso montar uma query para preencher o bd todo com os dias vencidos usando o DATADIFF, pois minha tabela diasvencidos está vazia...
desde já agradesço!
Abraços...
Link para o comentário
Compartilhar em outros sites
7 respostass a esta questão
Posts Recomendados