Skip to content

PostgreSQL: obliczanie odstępów czasu

by zergu on Styczeń 14th, 2009 Blip Facebook Flaker Twitter Wykop

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:

  • 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.

Podobne wpisy:

  1. Zapamiętywanie hasła dla PostgreSQL w pliku
  2. PostgreSQL: Reset wszystkich sekwencji
  3. Logowanie do pliku wszystkich zapytań w PostgreSQL

Autorzy zdjęć: zoutedrop

From → Bazy danych

No comments yet

Leave a Reply

Note: XHTML is allowed. Your email address will never be published.

Subscribe to this comment feed via RSS

Notify me of followup comments via e-mail. You can also subscribe without commenting.