::..Hunter..:: Postado Março 31, 2006 Denunciar Share Postado Março 31, 2006 Preciso registrar uma hora com os milésimos e guardar num campo do mysql, e não sei se existe algum tipo com este formato.Existe? :blink: Caso não exista terei que transformar tudo para milésimos e salvar num campo INT mesmo. :wacko: Link para o comentário Compartilhar em outros sites More sharing options...
0 mbleonardo Postado Abril 1, 2006 Denunciar Share Postado Abril 1, 2006 Do manual:Como uma string no formato 'D HH:MM:SS.fração' . (Note que o MySQL não armazena ainda frações para a coluna time.) Pode-se também utilizar uma das seguintes sintaxes ``relaxadas'':Também não entendi porque ele aceita mas não armazena :wacko:Coloca a hora no TIME (ou DATETIME) mesmo e os milésimos em outro campo. Link para o comentário Compartilhar em outros sites More sharing options...
0 ::..Hunter..:: Postado Abril 2, 2006 Autor Denunciar Share Postado Abril 2, 2006 Não posso botar os milésimos em outro campo porque tenho que fazer subtrações e somas de outros campos depois. É mais fácil eu transformar tudo para milésimos num campo int mesmo.Só queria saber mesmo se tinha um campo que aceitasse milésimos pra eu não precisar fazer todo este cálculo.Acabei fazendo esta função: <? function transforma($milesimos) { // cria a string de saída $tempo = ""; // acha as horas e intval retorna o valor int da variável $hora = intval($milesimos / 3600000); // se hora for maior que zero concatena na variável tempo if ($hora > 0) { $tempo .= str_pad($hora, 2, "0", STR_PAD_LEFT). 'h'; } // acha os minutos $minutos = intval(($milesimos / 60000) % 60); // se minutos for maior que zero concatena na variável tempo if ($minutos > 0) { $tempo .= str_pad($minutos, 2, "0", STR_PAD_LEFT). 'm'; } // acha os segundos $segundos = intval(($milesimos / 1000) % 60); // se segundos for maior que zero concatena na variável tempo if ($segundos > 0) { $tempo .= str_pad($segundos, 2, "0", STR_PAD_LEFT) . 's'; } // adiciona o resto de milésimos $mil = intval($milesimos % 1000); // se milesimos for maior que zero concatena na variável tempo if ($mil > 0) { $tempo .= str_pad($mil, 3, "0", STR_PAD_LEFT); } // saida formatada! return $tempo; } ?> <? // chama a função passando o valor em milésimos echo transforma(4270107); ?> EX: Botando 4270107 milésimos vai dar 01h11m10s107, pra converter isso ao contrário é só fazer:$milésimos = (1*3600000)+(11*60000)+(10*1000)+107Isso vai servir pra eu fazer um sistema de tomada de tempo numa corrida, sacaram? ;) Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
::..Hunter..::
Preciso registrar uma hora com os milésimos e guardar num campo do mysql, e não sei se existe algum tipo com este formato.
Existe? :blink:
Caso não exista terei que transformar tudo para milésimos e salvar num campo INT mesmo. :wacko:
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados