Problém:
Chcete získat aktuální čas s posunem jeho časového pásma v databázi PostgreSQL.
Řešení:
K získání informací o aktuálním čase a časovém pásmu použijeme funkci CURRENT_TIME. Zde je dotaz, který byste napsali:
SELECT CURRENT_TIME;
Zde je výsledek dotazu:
16:10:11.232455-05
Diskuse:
Funkce PostgreSQL CURRENT_TIME
vrátí aktuální čas a posun časového pásma počítače, na kterém běží PostgreSQL. Je uvedena jako hodnota v 'hh:mm:ss.nnnnnn+/-tz' formát. V tomto formátu:
- hh je 2místná hodina.
- mm je dvoumístná minuta.
- ss je 2místná sekunda.
- nnnnnn definuje počet zlomkových sekund (tj. přesnost) od 0 do 6.
- +tz nebo -tz je posun časového pásma, plus nebo minus od UTC.
CURRENT_TIME
nemá žádné závorky. Pokud však chcete zobrazit čas se specifickou přesností, můžete přidat závorky a uzavřít celé číslo od 0 do 6. (Argument „0“ nevrátí žádné zlomkové sekundy, „1“ vrátí jednu zlomkovou sekundu (např. místo za desetinnou čárkou) atd. Tím se vrátí čas s vámi deklarovaným počtem zlomkových sekund a posunem časového pásma. Podívejte se na následující příklad:
SELECT CURRENT_TIME(2) ;
Zde je výsledek dotazu:
16:10:11.23-05
Tento výsledek obsahuje 2-místný zlomek sekundy, protože jsme jako argument vložili 2. Posun časového pásma se zobrazí jako kladný nebo záporný (+ nebo -) v závislosti na tom, zda je čas před nebo za UTC.
Čas vrácený touto funkcí se během transakce nebo jediného dotazu nemění. Je to vždy čas, kdy transakce začala.