quinta-feira, 3 de novembro de 2011

Função para Formatar Data no PostgreSQL

PostgreSQL
Salve salve colegas.

Dando sequencia ao assunto formatação de datas, qual já abordei anteriormente no MySQL, hoje veremos no PostgreSQL.


Então, vamos à função:

 CREATE OR REPLACE FUNCTION "paposql"."fun_converte_data" (  
  "p_data" timestamptz
 )  
 RETURNS varchar AS  
 $body$  
 DECLARE  
 l_ret   varchar  ;  
 BEGIN  
 l_ret := (to_char(p_data,'dd/MM/yyyy HH24:MI:SS'));  
 return l_ret;  
 END;  
 $body$  
 LANGUAGE 'plpgsql'  
 VOLATILE  
 CALLED ON NULL INPUT  
 SECURITY INVOKER  
 COST 100;  

A função tem como parâmetro de entrada um timestamptz, representado aqui pelo p_data.

Com o parâmetro fornecido, converto a data para o formato Dia, Mês, Ano, Hora, Minuto, Segundo através da função to_char alimentando a variável l_ret, após retorno a variável com a informação, simples não!

Com esta função você também pode retornar somente a data, retirando os formatos HH24:MI:SS.

Para testar a função, chame-a através do comando:



Um abraço a todos e até a próxima.

Clique aqui e veja todas as matérias sobre PostgreSQL

3 comentários:

  1. Thiago - São Paulo4 de novembro de 2011 07:36

    Cara, essa função me ajudou muito, valeu mesmo

    ResponderExcluir
  2. Neste tipo de função, vale a pena usar o IMMUTABLE ao invés do VOLATILE. Isto dá um ganho significativo na performance da sua função.

    Vide: http://www.postgresql.org/docs/9.1/static/xfunc-volatility.html

    Você também pode simplificar mais aínda a sua função e declarar ela como do tipo SQL ao invés de PL.

    ResponderExcluir
  3. outra forma de formatar data é

    SET datestyle TO SQL, DMY; da pra setar isso no pg_conf tbm.

    ResponderExcluir