sexta-feira, 19 de agosto de 2011

Função para Formatar Datas no MySQL

Salve salve papeiros.

Como é de conhecimento de todos, o MySQL salva as informações do tipo Data no formato YYYY-MM-DD (Ano, Mês e Dia).

Eu considero apresentar datas neste formato uma coisa bem poluída, e sempre dou preferência de converte-la antes da apresentação em tela.

Para fazer a conversão podemos utilizar a função date_format do MySQL, porém a todo momento escrever a função é um tanto quanto chato.

Para resolver isto usamos o conceito de Orientação a Objeto, desenvolvendo uma função que irá fazer a conversão, e sempre que necessário, ao invés de escrever o código, chamamos a função.

Vamos ao exemplo:

 Delimiter $$  
 Drop Function If Exists 'fun_conv_data'$$  
 Create Function 'fun_conv_data'(p_data timestamp) Returns varchar(20) Charset utf8  
    Begin  
      Declare l_ret varchar(20);  
         Set l_ret = (Select date_format(p_data, '%d/%m/%y %k:%i:%s'));  
      Return l_ret;  
 End$$  

Após criada, somente realizamos a chamada.

 Select fun_conv_data(now());  

Podemos realizar várias derivações desta função, apresentado por exemplo a data por extenso.

Abraços e até a próxima papeiros.

2 comentários:

  1. Com o script abaixo a data fica em inglês. Como seria para por em português?

    ResponderExcluir
    Respostas
    1. Olá Cau, bom dia.

      O resultado da função retorno DD/MM/AA HH:MM:SS, o formato nacional, somente o ano que esta em 2 dígitos ao invés de 4.

      No caso, qual seria sua necessidade?

      Excluir