Ver Mensaje Individual
  #29 (permalink)  
Antiguo 18/11/2009, 06:04
Avatar de xdrtas
xdrtas
 
Fecha de Ingreso: junio-2008
Ubicación: Venezuela
Mensajes: 97
Antigüedad: 15 años, 11 meses
Puntos: 13
Respuesta: Re: Formato de la fecha en PostgreSQL

Hola Pip, si copiaste y pegaste este texto exacto de tu conf, te digo que tiene un pequeño error.
Código PHP:
405  # - Locale and Formatting -
406  
407  datestyle 
iso'dmy'
408  timezone GMT            # actually, defaults to TZ 
409                      # environment setting 
Esta línea datestyle = iso, 'dmy' tiene que ir así datestyle = 'iso, dmy', con la comilla simple detras de la palabra "iso".

Usando ISO no te va a funcionar con el formato que tu buscas. Te muestro el ejemplo con la herramienta psql y con la siguiente configuración datestyle = 'iso, dmy':
Código:
aikido=# select * from "Album" where "alb_ID" > 20 order by "alb_ID" desc;
 alb_ID | alb_Titulo | alb_Fecha  | alb_Descripcion
--------+------------+------------+-----------------
     26 | Desde Web  | 2009-11-18 | Desde la web.
     25 | Prueba     | 2009-11-18 | Descripcion
     24 | Prueba     | 2009-11-18 | Descripcion
     23 | Prueba     | 2009-11-18 | Descripcion
     22 | Prueba     | 2009-11-18 | Descripcion
     21 | Titulo     | 2009-11-17 | Prueba bash
Ahora cambié la línea así: datestyle = 'SQL, DMY' y mira el resultado que me dá:
Código:
aikido=# select * from "Album" where "alb_ID" > 20 order by "alb_ID" desc;
 alb_ID | alb_Titulo | alb_Fecha  | alb_Descripcion
--------+------------+------------+-----------------
     26 | Desde Web  | 18/11/2009 | Desde la web.
     25 | Prueba     | 18/11/2009 | Descripcion
     24 | Prueba     | 18/11/2009 | Descripcion
     23 | Prueba     | 18/11/2009 | Descripcion
     22 | Prueba     | 18/11/2009 | Descripcion
     21 | Titulo     | 17/11/2009 | Prueba bash
Como puedes observar, se ha cambiado el formato, te dejo la tabla de comparación que trae la documentación.

ISO ISO 8601/SQL standard --> 1997-12-17 07:37:16-08
SQL traditional style --> 12/17/1997 07:37:16.00 PST
POSTGRES original style --> Wed Dec 17 07:37:16 1997 PST
German regional style --> 17.12.1997 07:37:16.00 PST

Desde PHP me funciona correctamente a la hora de guardar la fecha, sin usar funciones de conversión. Desde el pgAdmin III no he logrado que me devuelva la fecha en el formato que quiero, pero eso ya es problema de configuración de la herramienta pgadmin. Internamente me está guardando la fecha en el formato que quiero, que es DD/MM/YYYY. Si consigo configurar el output de la fecha en el pgadmin III les aviso.

Te pongo un ejemplo de insert sobre la tabla "Album" para que veas que no uso ninguna función especial y luego el select para que veas el resultado:
Código sql:
Ver original
  1. INSERT INTO "Album" VALUES (NEXTVAL('"Album_alb_ID_seq"'), 'titulo', '18/11/2009', 'Descripcion');
  2. SELECT * FROM "Album" WHERE "alb_ID" > 20 ORDER BY "alb_ID" DESC;
  3.  
  4.  alb_ID | alb_Titulo | alb_Fecha  | alb_Descripcion
  5. --------+------------+------------+-----------------
  6.      27 | titulo     | 18/11/2009 | Descripcion
  7.      26 | Desde Web  | 18/11/2009 | Desde la web.
  8.      25 | Prueba     | 18/11/2009 | Descripcion
  9.      24 | Prueba     | 18/11/2009 | Descripcion
  10.      23 | Prueba     | 18/11/2009 | Descripcion
  11.      22 | Prueba     | 18/11/2009 | Descripcion
  12.      21 | Titulo     | 17/11/2009 | Prueba bash

Espero que te sirva, recuerda para el formato DD/MM/YYYY usa datestyle = 'SQL, DMY', saludos.