Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

xXxWesleyxXx

Função DATE_ADD() do MySQL.

Recommended Posts

Olá pessoal, tenho uma tabela em um BD, onde á 3 campos. O campo "agora" receberá a hora, deverá armazenar a hora atual + X segundos, onde este "X", é o valor da variavel $tempo. O campo é do tipo datetime. O que quero fazer é, atualizar um cadastro no BD, colocando a data e hora atual + um tempo (Y-m-d H:i:s).

O Grande problema é que, ele só está armazenando a data e hora atual, mas não acrescenta os segundos, posso colocar dias, horas, semanas, anos e etc, mas ele não faz. Parece que ele "ignora" a parte do "INTERVAL", só usa o "NOW()". Vejam o codigo:

 

$atualize=mysql_query ("update tempo set ad='2',agora=DATE_ADD(NOW(), INTERVAL $tempo SECOND) where id='1' ")
or die("<BR><BR>Erro ao atualizar!!!");

 

O que está errado? O pior é que, eu descobri esta função a um mês atráz, deu tudo certo, então deixei ela de lado, mas agora que resolvi usa-la de novo, detalhe: no mesmo arquivo que antes; ela não funciona, acho que mexi antes e não me lembro... da uma força ai pessoal....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já tentou algo com a função strtotime do php? A única coisa é que terá de fazer o tratamento fora do SQL.

http://php.net/manual/pt_BR/function.strtotime.php

 

$segundos = 10;

$atualizado = date('Y-m-d H:i:s', strtotime("+".$segundos." seconds"));

 

No caso se quiser adicionar dias

 

$dias = 10;

$atualizado = date('Y-m-d H:i:s', strtotime("+".$dias." days"));

 

Espero ter ajudado...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já tentou algo com a função strtotime do php? A única coisa é que terá de fazer o tratamento fora do SQL.

http://php.net/manual/pt_BR/function.strtotime.php

 

$segundos = 10;

$atualizado = date('Y-m-d H:i:s', strtotime("+".$segundos." seconds"));

 

No caso se quiser adicionar dias

 

$dias = 10;

$atualizado = date('Y-m-d H:i:s', strtotime("+".$dias." days"));

 

Espero ter ajudado...

 

Também não deu certo, ele só salva a hora atual, mas não soma com o tempo adicional! Sabe o que pode está acontecendo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz uma modificação, mas mesmo assim não deu certo.

 

$hora= date("Y-m-d H:i:s", strtotime("+ 600 second"));
$atualize=mysql_query ("update tempo set ad='2',agora='$hora' where id='1' ")
or die("<BR><BR>Erro ao atualizar!!!");

 

Ele coloca a hora atual + os 10 minutos(600 segundos), mas acrescenta mais 5 horas. Exemplo, executei as 16:00:00; ele registrou 21:10:00. COMO?! Ele não está pegando a data e hora do servidor? E o servidor não é o meu pc? Que doideira é esta?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você quer inserir segundos, não seria melhor utilizar a função ADDTIME?

Funcion da mesma forma, só que para tempo.

 

ADDTIME

Compartilhar este post


Link para o post
Compartilhar em outros sites

OK! Refiz todo o código, mas, ele não aceita segundos, minutos ou horas; só semanas, meses, dias, anos.

Se coloco segundos,por exemplo, ele salva só a data e tempo atual, ou sejá, o erro continua. E á respeito do que o Gabriel Heming disse, creio que não da certo, pois dependendo do caso, vai ter tantos segundos, que na verdade será horas, dias, etc...

 

Por que isso?! Alguém sabe?

 

$distancia=1;
$velocidade=60;
$tempo=$distancia*$velocidade;

$busca=mysql_query ("SELECT estado FROM tempo WHERE id='1'")
      or die ("<h1>Não foi possível realizar as buscas:</h1>".mysql_error());

while ($reg=mysql_fetch_assoc($busca))
    {
     $estado_db=$reg["estado"];
    }

//Verificando se o estado está livre, se estiver, prepara o Banco de Dados para iniciar o tempo.
if ($estado_db=="livre")
  {
   $dados="UPDATE tempo SET estado='em_uso', agora=NOW(), futuro=DATE_ADD(NOW(), INTERVAL ".$tempo." SECOND) WHERE id='1'";
   $atualize=mysql_query($dados)
             or die ("<BR><BR>Erro ao atualizar!!! ".mysql_error());
  }

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.