sql >> Databáze >  >> RDS >> PostgreSQL

Jak získat aktuální čas (bez časového pásma) v PostgreSQL

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.


  1. Vytvořte více instancí Postgres na stejném počítači

  2. ORA-01097

  3. Jak předám seznam jako parametr v uložené proceduře?

  4. Jednoduchá parametrizace a triviální plány — 1. část