Ir para conteúdo

POWERED BY:

Arquivado

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

kingars

Data no Mysql

Recommended Posts

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

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

É, 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

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

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

×

Informação importante

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