sql >> Database teknologi >  >> RDS >> PostgreSQL

Forespørgselstidszone - db server &klientmaskine har forskellige tidszoner

Du altid få de same data in browser client as the db original value . Der er bare mange forskellige måder at vise det samme tidspunkt på (i forskellige tidszoner). To eksempler (tekstrepræsentationer af en timestamptz værdi):

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

Samme værdi .

Hvad Postgres angår, er tidszoneindstillingen af ​​serveren fuldstændig irrelevant for dette. Det eneste relevante er indstillingen af ​​sessionen. Og det eneste, der ændrer sig, er displayet af værdien. Det er altid det samme tidspunkt.

Så bare indstil tidszonen i din session for at få den tilsvarende tekstrepræsentation:

En anden mulighed ville være AT TIME ZONE konstruere. For at få et timestamp som lokal timestamp without time zone :

SELECT my_timestamptz_column AT TIME ZONE '-8';

Når man har at gøre med en table that contains a column of timezone type , kan dette være den bedre tilgang, da tidszonen kan ændre sig for hver række.

Igen er alt dette i referencesvaret:




  1. FOR XML PATH(''):Escapende specialtegn

  2. Det indsætter ikke værdierne i databasen

  3. Øg værdien i MySQL-opdateringsforespørgsel

  4. MYSQL array aggregat funktion som PostgreSQL array_agg