PostgreSQL: obliczanie odstępów czasu

Jak sprawdzić ile godzin minęło od utworzenia rekordu (lub po prostu obliczyć odstęp czasu od dowolnego momentu)? Trzeba skorzystać z funkcji epoch i extract:
SELECT EXTRACT (epoch FROM (now() - created_at))/3600 AS lifetime FROM …
Zakładając oczywiście, że w kolumnie created_at trzymamy dokładny czas utworzenia rekordu. Funkcja extract może operować na timestampach (znacznikach czasu) i interwałach (wynik działania now() - created_at jest właśnie interwałem). Powyższe zapytanie oblicza godziny, ponieważ extract zwraca sekundy, które później dzielimy przez 3600.
Poza zaprezentowanym przykładem, możemy „extractować” wiele innych wartości, takich jak:
centurydaydecadedow(dzień tygodnia)epochhourisodowisoyearmicrosecondsmillenniummillisecondsminutemonthquartersecondtimezonetimezone_hourtimezone_minuteweekyear
Szczegóły w dokumentacji.
Podobne wpisy:
- Zapamiętywanie hasła dla PostgreSQL w pliku
- PostgreSQL: Reset wszystkich sekwencji
- Logowanie do pliku wszystkich zapytań w PostgreSQL
Autorzy zdjęć: zoutedrop




