wtorek, 23 czerwca 2009

Postgresql i unix time (epoch)

Funkcją abstime możemy w łatwy sposób przekonwertować datę w formacie unix time (epoch). Np.

db=# select abstime(1245535200);
abstime
------------------------
2009-06-21 00:00:00+02
(1 row)


Możemy też użyć nazwy kolumny;


db=# select abstime(time), * from events;
abstime | city
-------------------------|---------
2009-06-21 00:00:00+02 | krakow
(1 row)



W drugą stronę jest trochę więcej pisania:


db=# select extract(epoch from timestamp '2009-06-21');
date_part
------------
1245535200
(1 row)


Przy użyciu tych funkcji możemy manipulować danymi zmieniając unix time na datę i odwrotnie. Mam nadzieję, że komuś się przyda.

Funkcje date/time dla postgresqla są na http://www.postgresql.org/docs/8.3/interactive/functions-datetime.html