kingars 0 Denunciar post Postado Maio 13, 2008 Amigos, Estou em um dilema aqui. É sabido por nos que os campos Date e DateTime no MySql, estão no formato Americano, ou seja YYYY-MM-DD. Para exibir no formato brasileiro, não tem problema, pois posso usar: SELECT DATE_FORMAT(tbl_data,'%d/%m/%Y') as data FROM tb_tabela O problema está na hora de armazenar esta data no banco, pois no formulário está setado para a pessoa preencher assim: dd/mm/aa. Como faço para que o MySql converta essa data para o formato Americano na hora de gravar no banco? Le,brando que o campo é em formato Date. {} Compartilhar este post Link para o post Compartilhar em outros sites
Gustavo H Lima 0 Denunciar post Postado Maio 13, 2008 Que linguagem voce está usando? Se for em PHP dá pra fazer assim... Formulário: <form name=form action=script.php method=get> Dia <input type=text name=dia size=2 maxlength=2><br> Mes <input type=text name=mes size=2 maxlength=2><br> Ano <input type=text name=ano size=4 maxlength=4><br> <input type=submit value=enviar> </form> Script.php: <?php $dia = $_GET["dia"]; $mes = $_GET["mes"]; $ano = $_GET["ano"]; //soh vou colocar a query, a conexao ao banco de dados voce provavelmente já sabe fazer $query = "INSERT INTO tabela (data) VALUES ('$ano-$mes-dia');"; //dps mysql_query($query); ?> Nao testei o código, mas fiz só pra voce ter noçao de como inserir os dados... Eu faço assim... :) Espero ter ajudado Compartilhar este post Link para o post Compartilhar em outros sites
Paulo Caesar 0 Denunciar post Postado Maio 14, 2008 É, o MYSQL só teria como fazer essa conversão com stored procedure. Como o Gustavo disse, com PHP seria bem fácil de fazer: <?php list($dia, $mes, $ano) = explode('/', $_POST['data']); /* Ou poderia ser utilizado aqui um preg_match: preg_match('@([0-9]{2})/([0-9]{2})/([0-9]{4})@', $_POST['data'], $matches); $matches[0] = dia $matches[1] = mes $matches[2] = ano */ $data = "$ano-$mes-$dia"; mysql_query('UPDATE `tabela` SET `data`="'.$data.'" WHERE `id`=1'); ?> Compartilhar este post Link para o post Compartilhar em outros sites
giesta 29 Denunciar post Postado Maio 14, 2008 Nao precisa de um bacalhau complicado pra fazer isso, stored proc e etc... se você analisar bem pra colocar no formato mysql você soh precisa jogar o ano pra frente e o dia pra tras. entao.... select CONCAT( RIGHT('13/05/2008',4) , SUBSTRING('13/05/2008', -7,2) , LEFT('13/05/2008',2) ) aih o 13/05/2008 você muda pra variavel que você quiser... vale lembrar q ele aceita tanto 20080513 como 2008-05-13 Compartilhar este post Link para o post Compartilhar em outros sites
kingars 0 Denunciar post Postado Maio 14, 2008 Valeu mesmo pelas dicas galera! {} Compartilhar este post Link para o post Compartilhar em outros sites
Crishtiane 0 Denunciar post Postado Maio 27, 2008 valeu paulo cesar, resolveu minha vida aqui!! rs Compartilhar este post Link para o post Compartilhar em outros sites
Miguel Ness 0 Denunciar post Postado Junho 12, 2008 Que linguagem voce está usando? Se for em PHP dá pra fazer assim... Formulário: <form name=form action=script.php method=get> Dia <input type=text name=dia size=2 maxlength=2><br> Mes <input type=text name=mes size=2 maxlength=2><br> Ano <input type=text name=ano size=4 maxlength=4><br> <input type=submit value=enviar> </form> Script.php: <?php $dia = $_GET["dia"]; $mes = $_GET["mes"]; $ano = $_GET["ano"]; //soh vou colocar a query, a conexao ao banco de dados voce provavelmente já sabe fazer $query = "INSERT INTO tabela (data) VALUES ('$ano-$mes-dia');"; //dps mysql_query($query); ?> Nao testei o código, mas fiz só pra voce ter noçao de como inserir os dados... Eu faço assim... :) Espero ter ajudado Nossa, quebro um galhão Paulo Vlw mesmo!!! Compartilhar este post Link para o post Compartilhar em outros sites