MySQL: Somando datas corretamente com CURDATE

A função CURDATE não funciona corretamente para a adição de dias que extrapolam o calendário. Como exemplo, a instrução a seguir retornar uma data inexistente:

// acrescentando 120 dias a data atual
 > SELECT CURDATE()+120;
 > 20071325

Para resolver isso é usada uma outra função chamada DATE_ADD, responsável pela soma correta de dias em uma determinada data:

// acrescentando 120 dias a data atual
 > SELECT DATE_ADD(CURDATE(), INTERVAL 120 DAY);
 > 2008-04-03

O mesmo pode ser feito para subtrair dias de uma data com a função DATE_SUB.

This entry was posted in MySQL and tagged , , , , , , , , . Bookmark the permalink.

6 Responses to MySQL: Somando datas corretamente com CURDATE

  1. Júnior says:

    Vlw, me ajudou bastante essa função!

  2. Fabiano Carboni says:

    Deixo aqui meu agradecimento pela função.

    Um Abraço e sucesso.

    Fabiano Carboni

  3. Aline says:

    Muito Obrigada pela função, melhor do que fazer via código de programação.
    =)

  4. Bruno Pulis says:

    Cara simplesmente coisa linda de DEUS!!

    Muito Obrigado por divulgar =D

  5. Estava pensando em fazer a soma de datas direto no PHP, mas como era um insert no banco resolvi procurar algo direto para melhorar a performance. Muito útil seu post! Obrigado!

  6. Josueldo says:

    Prezados,
    veja bem,
    Estou precisando pegar uma data no banco de dados mysql e comparar com a data atual, vale lembrar que essa data que buscarei no banco de dados, está la desde o cadastro do usuario. Após essa, comparação, se o resultado for igual a zero, não deixar o usuario fazer login no sistema. ja tenho o sistema, só falta comparar essas suas datas para chegar ao resultado de zero, porque se for maior que zero tera acesso normal ao conteudo restrito.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>