sql >> Databasteknik >  >> RDS >> PostgreSQL

Fråga tidszon - db-server &klientmaskin har olika tidszoner

Du alltid hämta same data in browser client as the db original value . Det finns bara många olika sätt att visa samma tidpunkt (vid olika tidszoner). Två exempel (textrepresentationer av en timestamptz värde):

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

Samma värde .

Vad Postgres beträffar är tidszonsinställningen för servern helt irrelevant för detta. Det enda relevanta är inställningen av sessionen. Och det enda som ändras är displayen av värdet. Det är alltid samma tidpunkt.

Så ställ bara in tidszonen i din session för att få motsvarande textrepresentation:

Ett annat alternativ skulle vara AT TIME ZONE konstruera. För att få en timestamp som lokal timestamp without time zone :

SELECT my_timestamptz_column AT TIME ZONE '-8';

När man har att göra med en table that contains a column of timezone type , kan detta vara det bättre tillvägagångssättet, eftersom tidszonen kan ändras för varje rad.

Återigen, allt detta finns i referenssvaret:




  1. Mysql-sökning med kommaavgränsad sträng

  2. Direkt åtkomst till en SQL-serverdatabas i Xamarin.Forms

  3. Problem med postgresql och pgadmin docker-containrar

  4. Bästa praxis för bulk_create för massiva poster