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.


Cara, essa função me ajudou muito, valeu mesmo
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.
outra forma de formatar data é
SET datestyle TO SQL, DMY; da pra setar isso no pg_conf tbm.