Deprecated: Assigning the return value of new by reference is deprecated in /home/eduardobona/eduardobona.com.br/blog/wp-settings.php on line 232

Deprecated: Assigning the return value of new by reference is deprecated in /home/eduardobona/eduardobona.com.br/blog/wp-settings.php on line 234

Deprecated: Assigning the return value of new by reference is deprecated in /home/eduardobona/eduardobona.com.br/blog/wp-settings.php on line 235

Deprecated: Assigning the return value of new by reference is deprecated in /home/eduardobona/eduardobona.com.br/blog/wp-settings.php on line 252

Deprecated: Assigning the return value of new by reference is deprecated in /home/eduardobona/eduardobona.com.br/blog/wp-includes/cache.php on line 36

Deprecated: Assigning the return value of new by reference is deprecated in /home/eduardobona/eduardobona.com.br/blog/wp-includes/query.php on line 15

Deprecated: Assigning the return value of new by reference is deprecated in /home/eduardobona/eduardobona.com.br/blog/wp-includes/theme.php on line 505
Eduardo Bona » Função SQL/MYSQL para transformação do campo DATE ou DATETIME

Função SQL/MYSQL para transformação do campo DATE ou DATETIME

Eis o caso: Você quer que seu cliente cadastre uma data no seguinte formato: “19/02/2008″ (d-m-Y) ou quer que esta mesma data apareça para seu cliente.

O problema: O banco de dados use como formato padrão Y-m-d, ou seja, no caso acima “2008-02-19″ e aí, existem duas saídas viáveis e uma terceira que é o que eu vejo a maioria dos programadores usar.

  1. Configurar o formatação dos campos tipo DATE no banco de dados, caso você seja o administrador do BD.
  2. Utitlizar funções internas do mysql para a formatação.
  3. Criar nos próprios scripts uma forma de receber aquela string e criar rotinas para a transformação.

A primeira opção seria a melhor, se não fosse o fato de modificar todo o seu BD atual. Cuidado! Por se tratar de um padrão universal o formato Y-m-d muitas aplicações seriam prejudicadas caso usassem o mesmo banco de dados que você alterou o modo de exibição.

A segunda opção é a que eu venho lhes apresentar no exemplo abaixo:

digita_e_envia.html
<form action="recebe_e_grava.php" methos="post">
<input type="text" name="data" value="19/02/2008" />
</form>

recebe_e_grava.php
$data = $_POST["data"];
$sql = "INSERT INTO tb_tabela ('id', 'data') VALUES (NULL, str_to_date('$data', '%d/%m/%Y'))";
mysql_query($sql);

apresenta.php
$sql = "select id, date_format(data, '%d/%m/%Y') from tb_tabela";
mysql_query($sql);

Pronto!

Eis as funções:

str_to_date(’19/02/2008′, ‘%d/%m/%Y’) = str_to_date($string, $formato_da_string) para a transformação de uma string no seu formato em formato padrão.

date_format(data, ‘%d/%m/%Y’) = date_format (campo_da_tabela, $formato_da_string) para a transformação de um campo no formato padrão da tabela para o seu formato.

Eu utilizo como formato dd/mm/yyyy. Por isso, se você utiliza outro que não esse ou o padrão universal leia atentamente a documentação do Mysql abaixo.

Valeu!

Referência:
Documentação Mysql - str_to_date()
Documentação Mysql - date_format()

Leave a Reply