Ver Mensaje Individual
  #3 (permalink)  
Antiguo 23/08/2010, 21:30
Avatar de djmashe
djmashe
 
Fecha de Ingreso: julio-2007
Ubicación: Posadas, Misiones
Mensajes: 52
Antigüedad: 16 años, 9 meses
Puntos: 2
Respuesta: Consulta que devuelve formato fecha en ingles, cambiar a español

Gracias huesos52, tu consulta me simplifico las cosas jeje. Por otro lado justo había logrado realizar lo que necesitaba pero de manera distinta, por lo cual dejo a continuación mi versión para aquellos que la quieran usar|analizar|optimizar.

Código SQL:
Ver original
  1. SELECT CASE WHEN (date_part('year', age(TIMESTAMP '2010-08-23', TIMESTAMP '2010-01-01')) > 0) THEN
  2.                   date_part('year', age(TIMESTAMP '2010-08-23', TIMESTAMP '2010-01-01')) || CASE WHEN (date_part('year', age(TIMESTAMP '2010-08-23', TIMESTAMP '2010-01-01')) = 1) THEN ' año  '
  3.                                                                                                  WHEN (date_part('year', age(TIMESTAMP '2010-08-23', TIMESTAMP '2010-01-01')) > 1) THEN ' años ' END
  4.             ELSE '' END ||
  5.        CASE WHEN (date_part('month', age(TIMESTAMP '2010-08-23', TIMESTAMP '2010-01-01')) > 0) THEN
  6.                   date_part('month', age(TIMESTAMP '2010-08-23', TIMESTAMP '2010-01-01')) || CASE WHEN (date_part('month', age(TIMESTAMP '2010-08-23', TIMESTAMP '2010-01-01')) = 1) THEN ' mes  '
  7.                                                                                                   WHEN (date_part('month', age(TIMESTAMP '2010-08-23', TIMESTAMP '2010-01-01')) > 1) THEN ' meses ' END
  8.             ELSE '' END ||
  9.        CASE WHEN (date_part('day', age(TIMESTAMP '2010-08-23', TIMESTAMP '2010-01-01')) > 0) THEN
  10.                   date_part('day', age(TIMESTAMP '2010-08-23', TIMESTAMP '2010-01-01')) || CASE WHEN (date_part('day', age(TIMESTAMP '2010-08-23', TIMESTAMP '2010-01-01')) = 1) THEN ' dia  '
  11.                                                                                                 WHEN (date_part('day', age(TIMESTAMP '2010-08-23', TIMESTAMP '2010-01-01')) > 1) THEN ' dias ' END
  12.             ELSE '' END AS Periodos;

Esta versión de la consulta lo que realiza es evitar devolver los textos de '0 años', '0 meses' o '0 dias' en caso de darse una fecha que coincida con ese patrón. En el ejemplo anterior en vez de mostrar:

Código SQL:
Ver original
  1. 0 años 7 meses 22 dias

da como resultado:

Código SQL:
Ver original
  1. 7 meses 22 dias