Função AT TIME ZONE
AT TIME ZONE especifica qual fuso horário a usar com uma expressão TIMESTAMP ou TIMESTAMPTZ.
Sintaxe
AT TIME ZONE 'timezone'
Argumentos
- timezone
-
O
TIMEZONE
do valor de retorno. O fuso horário pode ser especificado como um nome de fuso horário (como'Africa/Kampala'
ou'Singapore'
) ou como uma abreviação de fuso horário (como'UTC'
ou'PDT'
).Para visualizar uma lista de nomes de fusos horários compatíveis, execute o comando a seguir.
select pg_timezone_names();
Para visualizar uma lista de abreviações de fusos horários compatíveis, execute o comando a seguir.
select pg_timezone_abbrevs();
Para ter mais informações e exemplos, consulte Observações quanto ao uso de fuso horário.
Tipo de retorno
TIMESTAMPTZ quando usado com uma expressão TIMESTAMP. TIMESTAMP quando usado com uma expressão TIMESTAMPTZ.
Exemplos
O exemplo a seguir converte um valor de carimbo de data/hora sem fuso horário e o interpreta como o fuso MST (UTC+7 em POSIX). O exemplo retorna um valor do tipo de dados TIMESTAMPTZ para o fuso horário UTC. Se configurar o fuso horário padrão como um fuso horário diferente de UTC, você poderá ver um resultado diferente.
SELECT TIMESTAMP '2001-02-16 20:38:40' AT TIME ZONE 'MST';
timezone ------------------------ 2001-02-17 03:38:40+00
O exemplo a seguir pega um time stamp de entrada com um valor de fuso horário em que o fuso horário especificado é EST (UTC+5 em POSIX) e o converte para MST (UTC+7 em POSIX). O exemplo retorna um valor do tipo de dados TIMESTAMP.
SELECT TIMESTAMPTZ '2001-02-16 20:38:40-05' AT TIME ZONE 'MST';
timezone ------------------------ 2001-02-16 18:38:40