Ver Mensaje Individual
  #25 (permalink)  
Antiguo 31/05/2008, 10:20
lriosv
 
Fecha de Ingreso: mayo-2008
Mensajes: 6
Antigüedad: 16 años
Puntos: 0
Respuesta: Formato de la fecha en PostgreSQL

amigo Pip como te prometi aca te paso las dos funciones, en mi caso tengo postgres 8.0.0 mi encoding es LATIN1, cuando inserto fechas me inserta en este formato mm/dd/yyyy la funcion 2 te lo pasa a dd/mm/yyyy:

1. te devuelve el mes en mayusculas

CREATE OR REPLACE FUNCTION "public"."Mes" (fecha_actual date) RETURNS text AS
$body$
/* New function body */
DECLARE
str_nro VARCHAR;
cadena TEXT;
BEGIN
SELECT TO_CHAR(fecha_actual,'MM') INTO str_nro;
IF (str_nro = '01') THEN
cadena = 'ENERO';
ELSIF(str_nro = '02')THEN
cadena = 'FEBRERO';
ELSIF(str_nro = '03')THEN
cadena = 'MARZO';
ELSIF(str_nro = '04')THEN
cadena = 'ABRIL';
ELSIF(str_nro = '05')THEN
cadena = 'MAYO';
ELSIF(str_nro = '06')THEN
cadena = 'JUNIO';
ELSIF(str_nro = '07')THEN
cadena = 'JULIO';
ELSIF(str_nro = '08')THEN
cadena = 'AGOSTO';
ELSIF(str_nro = '09')THEN
cadena = 'SETIEMBRE';
ELSIF(str_nro = '10')THEN
cadena = 'OCTUBRE';
ELSIF(str_nro = '11')THEN
cadena = 'NOVIEMBRE';
ELSIF(str_nro = '12')THEN
cadena = 'DICIEMBRE';
ELSE
RAISE EXCEPTION 'NO EXISTE EL MES INIDICADO';
END IF;
RETURN cadena;
END;
$body$
LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;

-----------------------------------------------------------------------------------------------------------------------
2. esta es creo la solucion a tu problema:

CREATE OR REPLACE FUNCTION "public"."formatear_fecha" (fecha date) RETURNS date AS
$body$
/* New function body */
DECLARE
str_fecha TEXT;
fecha_actual DATE;
BEGIN
SELECT TO_CHAR(fecha,'MM/DD/YYYY') INTO str_fecha;
SELECT TO_DATE(str_fecha,'MM/DD/YYYY') INTO fecha_actual;
RETURN fecha_actual;
END;
$body$
LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;



bueno amigo ahi lo tienes, mas bien una consulta como ya salio la version 8.3.0 que es estable y dicen que tiene muchas mejoras y hablan bien de esa version como sabes que tengo la 8.0.0 no tendras un manual o docuentacion español q me pases o un link te lo agradecere por q si es asi debo saber como migrar la data a esa version sin perjudicar a los usuario finales
saludos