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

PostgreSQL výpis a obnovení v jiném časovém pásmu

Typ dat Postgres timstamptz ( =timestamp with time zone ) interně ukládá hodnoty jako časové razítko UTC (celé číslo počítající mikrosekundy od roku 2000), což je nezávislé na časovém pásmu, kdy jsou tyto hodnoty zobrazeny pro. není ukládat jakékoli informace o časovém pásmu, jak by si někteří mohli myslet, nesprávně odhadující název. Můžete vypsat a obnovit, kolik chcete.

Co vidíte ve vašem klientovi závisí na nastavení časového pásma relace.

Spustit (ve stejné relaci, abyste se vyhnuli artefaktům):

SHOW timezone;

Pokud vidíte localtime pak Postgres použije výchozí nastavení operačního systému vašeho serveru.

Nastavte jiné časové pásmo (v relaci pomocí SET timezone = ...; , pro vašeho uživatele nebo globálně v konfiguračních souborech), abyste viděli vaše časová razítka jinak formátovaná. Uvědomte si, že nastavení časového pásma v souboru výpisu není mít v tomto případě jakýkoli účinek, pouze nastavení vaší aktuální relace.

Podrobné vysvětlení v této související odpovědi:

O různých způsobech nastavení proměnných prostředí:




  1. stav SQL [99999]; kód chyby [17004]; Neplatný typ sloupce:1111 S Spring SimpleJdbcCall

  2. Jaký je rozdíl mezi VARCHAR a CHAR?

  3. Dotaz na výběr více dat spolu s průměrnými hodnotami v určitém čase pomocí Postgres

  4. SQL – záleží na pořadí podmínek NEBO?