PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Consultar fuso horário - o servidor db e a máquina cliente têm fusos horários diferentes


Você sempre obtenha os same data in browser client as the db original value . Há apenas muitas maneiras diferentes de exibir o mesmo ponto no tempo (em diferentes fusos horários). Dois exemplos (representações de texto de um timestamptz valor):
'2012-03-05 20:00:00+03'
'2012-03-05 18:00:00+01'

Mesmo valor .

No que diz respeito ao Postgres, a configuração de fuso horário do servidor é completamente irrelevante para isso. A única coisa relevante é a configuração da sessão. E a única coisa que muda é a exibição do valor. É sempre o mesmo ponto no tempo.

Então, basta definir o fuso horário em sua sessão para obter a representação de texto correspondente:

Outra opção seria o AT TIME ZONE construir. Para obter um timestamp como local timestamp without time zone :
SELECT my_timestamptz_column AT TIME ZONE '-8';

Ao lidar com uma table that contains a column of timezone type , essa pode ser a melhor abordagem, pois o fuso horário pode mudar para cada linha.

Novamente, tudo isso está na resposta de referência: