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

Query fuso orario:il server db e la macchina client hanno fusi orari diversi

Tu sempre ottenere gli same data in browser client as the db original value . Esistono solo molti modi diversi per visualizzare lo stesso momento (in fusi orari diversi). Due esempi (rappresentazioni testuali di un timestamptz valore):

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

Stesso valore .

Per quanto riguarda Postgres, l'impostazione del fuso orario del server è del tutto irrilevante. L'unica cosa rilevante è l'impostazione della sessione. E l'unica cosa che cambia è il display del valore. È sempre lo stesso momento.

Quindi imposta il fuso orario nella tua sessione per ottenere la rappresentazione del testo corrispondente:

Un'altra opzione sarebbe AT TIME ZONE costruire. Per ottenere un timestamp come locale timestamp without time zone :

SELECT my_timestamptz_column AT TIME ZONE '-8';

Quando si ha a che fare con una table that contains a column of timezone type , questo potrebbe essere l'approccio migliore, poiché il fuso orario può cambiare per ogni riga.

Ancora una volta, tutto questo è nella risposta di riferimento: