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;
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 |