Problém:
Chcete získat aktuální čas v databázi PostgreSQL. Nechcete posun časového pásma.
Řešení:
Použijeme funkci LOCALTIME
získat aktuální čas bez posunu časového pásma.
SELECT LOCALTIME;
Zde je výsledek dotazu:
22:15:51.987914
Diskuse:
PostgreSQL funkce LOCALTIME
vrátí aktuální čas na počítači, na kterém běží PostgreSQL. Vrátí jej jako typ časových dat v 'hh:mm:ss.nnnnnn ' formát. V tomto formátu:
- hh je 2místná hodina.
- mm je dvoumístná minuta.
- ss je 2místná sekunda.
- nnnnnn jsou zlomky sekund (od nuly do 6místné přesnosti).
Jak jste si všimli, tato funkce nemá žádné závorky. Pokud však chcete zobrazit čas s určitou přesností, použijte jako argument závorky s celým číslem od 0 do 6. Tím se vrátí čas s požadovaným počtem zlomků sekund. Například LOCALTIME(1)
označuje pouze jednu zlomkovou sekundu (tj. jedno místo za desetinnou čárkou); 2 vrátí dvě místa atd. Výchozí hodnota (žádné závorky nebo prázdné závorky) je šest, což je také maximální počet zlomků sekund. Podívejte se na následující příklad:
SELECT LOCALTIME(0) ;
Zde je výsledek dotazu:
21:12:06
Tento výsledek neobsahuje zlomky sekund, protože jsme jako argument vložili 0.
LOCALTIME
vrátí čas, kdy aktuální transakce začíná. Rozdíl mezi LOCALTIME
a CURRENT_TIME
je, že LOCALTIME nezahrnuje posun časového pásma.