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

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

Problém:

Chcete získat aktuální datum a čas v databázi PostgreSQL. Posun časového pásma nepotřebujete.

Řešení:

Použijeme funkci LOCALTIMESTAMP pro získání aktuálního data a času bez jakýchkoli informací o časovém pásmu:

SELECT LOCALTIMESTAMP ;

Zde je výsledek dotazu:

2019-09-24 20:10:58.977914

Diskuse:

PostgreSQL funkce LOCALTIMESTAMP vrátí aktuální datum a čas (počítače, na kterém běží daná instance PostgreSQL) jako časové razítko hodnota. Používá „RRRR-MM-DD hh:mm:ss.nnnnnnn ', kde:

  • RRRR je čtyřmístný rok.
  • MM je dvoumístný měsíc.
  • DD je dvoumístný den.
  • 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 datum a čas se specifickou přesností, vložte celé číslo od 0 do 6 jako argument do závorek. Tím se vrátí datum a čas s požadovaným počtem zlomků sekund. Například LOCALTIMESTAMP(1) označuje pouze jednu zlomkovou sekundu (tj. jedno místo za desetinnou čárkou); 2 vrátí dvě místa atd. Výchozí přesnost je 6, což je také maximální počet zlomků sekund; to je to, co získáte, pokud závorky vůbec nepoužíváte. Podívejte se na následující příklad:

SELECT LOCALTIMESTAMP(0) ;

Zde je výsledek dotazu:

2019-09-24 20:10:58

Tento výsledek neobsahuje zlomky sekund, protože jsme jako argument vložili 0.

Tato funkce vrací čas, kdy aktuální transakce začala. Rozdíl mezi LOCALTIMESTAMP a CURRENT_TIMESTAMP je to LOCALTIMESTAMP nezahrnuje posun časového pásma.


  1. Jak vytvořit tabulku z SQL dotazu

  2. Požadavek nastaven v Concurrent Manager

  3. Jak odinstalovat / úplně odebrat Oracle 11g (klient)?

  4. Jak vytvořit index v MySQL