Archiwum

Posty oznaczone ‘data i czas’

PostgreSQL: Czas życia krotki

Styczeń 14th, 2009 zergu Brak komentarzy

Jak sprawdzić ile godzin minęło od utworzenia rekordu (lub po prostu obliczyć odstęp czasu od dowolnego momentu)?

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. Poza tym możemy „extractować” wiele innych wartości, takich jak:

  • century
  • day
  • decade
  • dow (dzień tygodnia)
  • epoch
  • hour
  • isodow
  • isoyear
  • microseconds
  • millennium
  • milliseconds
  • minute
  • month
  • quarter
  • second
  • timezone
  • timezone_hour
  • timezone_minute
  • week
  • year

Szczegóły w dokumentacji.