¿Cómo convertir una fecha UNIX a un formato legible con un select?

From: emilio alvarez <beaster(at)terra(dot)es>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: ¿Cómo convertir una fecha UNIX a un formato legible con un select?
Date: 2004-11-23 08:30:56
Message-ID: 41A2F540.7080402@terra.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Almaceno las fechas en formato UNIX usando la sentencia de la siguiente
manera:

CREATE TABLE ejemplo_de_fecha(
id SERIAL,
fecha_acceso INTEGER DEFAULT DATE_PART('epoch', CURRENT_TIMESTAMP)
);

El valor por defecto de fecha_acceso almacena la fecha UNIX. Con esto me
refiero al número de segundos transcurridos desde no sé que día de 1970.

Ahora quiero obtener a partir de ese campo una fecha expresada así:
dd-mm-yyyy . Y no soy capaz.
HE intentado esto:

select 'epoch'::timestamptz + '1099251435 seconds'::interval;

?column?
------------------------
2004-10-31 19:37:15+00
(1 row)

pero esto me plantea a su vez varias dudas:

Como kiero obtener el numero de segundos a través del SELECT siguiente:
SELECT fecha_acceso FROM ejemplo_de_fecha WHERE id = 1;
Intento hacer el siguiente SELECT:

SELECT 'epoch'::timestamptz + (SELECT fecha_acceso FROM paquetes
WHERE id=1) || ' seconds'::interval;

ERROR: Unable to identify an operator '+' for types 'timestamp with
time zone' and 'integer'
You will have to retype this query using an explicit cast

Luego hago un CAST a ver si funciona:

SELECT 'epoch'::timestamptz + CAST((SELECT fecha_acceso FROM paquetes
WHERE id=1) AS TEXT) || ' seconds'::interval;

Bueno, total quer no me funciona nada. A ver si me podeis echar un cable
con esto y saludos desde Madrid

dr7tbien

SELECT fecha_acceso FROM ejemplo_de_fecha WHERE id = 1;

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Juanky Moral 2004-11-23 08:43:16 Re: ¿Cómo convertir una fecha UNIX a un formato legible con un select?
Previous Message Juanky Moral 2004-11-23 07:32:57 Re: string a date