Aug-10 30

Adicionar dias a uma data em Mysql ou PHP

Enviado por: Thales RB. .     1 comentário.     Categorias: MySQL, PHP

Esses dias eu precisei adicionar 1 mês em uma data, e descobrir duas formas de fazer isso.

Caso queira usar isso com o PHP poder ser usado a função explode:

[code="php"]
$dt_ini='30/08/2009';
$total_dias='30';
$data=explode('/', $dt_ini);  //irá jogar em um array os valores para cada barra "/" que encontrar
$ano=$data[2];
$mes=$data[1];
$dia=$data[0];
$proxima_data=mktime(0,0,0, $mes,$dia+$total_dias,$ano);
$dt_final=strftime("%d/%m/%Y", $proxima_data);
echo $dt_final;
?>
[/code]

A vantagem desse método é que pode ser qualquer formato de data(exemplo 2010-08-30 )

MYSQL

Agora para fazer isso no Mysql, ou seja pegar os registros de uma data no futuro, pode ser usado o comando DATE_ADD

[code="php"]

SELECT DATE_ADD(CURDATE(), INTERVAL 1 MONTH)  -- data atual + 1 mês

SELECT DATE_ADD(CURDATE(), INTERVAL -1 MONTH) -- data atual - 1 mês

-- CURDATE() retorna somente a data

-- NOW() retorna data e hora

[/code]

O INTERVAL pode ser qualquer forma de tempo desde microsegundos até anos. E pode ser usado um valor positivo(data no fututo) ou negativo(datas passadas). Veja aqui as opções.

E logicamente no lugar do CURDATE() pode ser um campo/variavel que contenha data (ele precisa estar salvo no formato DATE ou DATETIME).

Obs:  caso queria colocar uma data fixa ela precisa estar entre aspas ’2010-08-30′ para funcionar.

[/code]