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

Časové pásmo dotazu - db server a klientský počítač mají různá časová pásma

Vy vždy získat same data in browser client as the db original value . Existuje jen mnoho různých způsobů, jak zobrazit stejný bod v čase (v různých časových pásmech). Dva příklady (textové reprezentace timestamptz hodnota):

'2012-03-05 20:00:00+03'
'2012-03-05 18:00:00+01'

Stejná hodnota .

Pokud jde o Postgres, nastavení časového pásma serveru je pro to zcela irelevantní. Relevantní je pouze nastavení relace. A jediné, co se mění, je displej hodnoty. Je to vždy stejný bod v čase.

Stačí tedy nastavit časové pásmo ve vaší relaci, abyste získali odpovídající textovou reprezentaci:

Další možností by byl AT TIME ZONE postavit. Chcete-li získat timestamp jako místní timestamp without time zone :

SELECT my_timestamptz_column AT TIME ZONE '-8';

Při práci s table that contains a column of timezone type , může to být lepší přístup, protože časové pásmo se může měnit pro každý řádek.

To vše je opět v referenční odpovědi:




  1. Jaké jsou optimální velikosti varcharů pro MySQL?

  2. Časové razítko jOOQ se ukládá s místním posunem časového pásma

  3. Chyba při volání uložené procedury MySQL prostřednictvím PHP

  4. jak získat odlišné řádky s maximální hodnotou