timezone
Valores (padrão em negrito)
UTC, fuso horário
Sintaxe
SET timezone { TO | = } [ time_zone | DEFAULT ] SET time zone [ time_zone | DEFAULT ]
Descrição
Define o fuso horário da sessão atual. O fuso horário pode ser a diferença do Tempo Universal Coordenado (UTC) ou um nome de fuso horário.
nota
Você não pode definir o parâmetro de configuração timezone
usando um parameter group de cluster. O fuso horário pode ser definido somente para a sessão atual usando um comando SET. Para definir o fuso horário de para todas as sessões executadas por um usuário de banco de dados específico, use o comando ALTER USER. ALTER USER … SET TIMEZONE altera o fuso horário de sessões subsequentes, e não da sessão atual.
Ao definir o fuso horário usando o comando SET timezone
(uma palavra) com qualquer TO
ou =
, você pode especificar time_zone, como um nome de fuso horário, uma diferença em formato POSIX ou ISO-8601, conforme mostrado a seguir.
SET timezone { TO | = } time_zone
Ao definir o fuso horário usando o comando de fuso horário SET sem TO
ou =
, você pode especificar time_zone usando um INTERVAL, bem como um nome de fuso horário, um deslocamento de formato no estilo POSIX ou um deslocamento de formato ISO-8601, conforme mostrado a seguir.
SET time zone time_zone
Formatos de fuso horário
O Amazon Redshift oferece suporte aos seguintes formatos de fuso horário:
-
Nome do fuso horário
-
INTERVAL
-
especificação de fuso horário em estilo POSIX
-
Diferença ISO-8601
Como as abreviações de fuso horário, como PST ou PDT, são definidas como uma diferença fixa em relação ao UTC e não incluem regras de horário de verão, o comando SET não dá suporte a abreviações de fuso horário.
Para obter mais detalhes sobre formatos de fuso horário, consulte as informações a seguir.
Nome do fuso horário – o nome completo do fuso horário, como America/New_York. Entre os nomes de fuso horário completos estão regras de horário de verão.
Estes são exemplos de nomes de fuso horário:
-
Etc/Greenwich
-
America/New_York
-
CST6CDT
-
GB
nota
Muitos nomes de fuso horário, como EST, MST, NZ e UCT, também são abreviações.
Para exibir uma lista de nomes de fuso horário válidos, execute o comando a seguir.
select pg_timezone_names();
INTERVAL – Um deslocamento do UTC. Por exemplo, PST é -8:00 ou -8 horas.
Estes são exemplos de diferenças de fuso horário INTERVAL:
-
-8:00
-
-8 horas
-
30 minutos
Formato de estilo POSIX – Uma especificação de fuso horário no formato STDoffset ou STDoffsetDST, em que STD é uma abreviatura de fuso horário, deslocamento é o deslocamento numérico em horas a oeste do UTC e DST é uma abreviação opcional do fuso horário de verão. Supõe-se que o horário de verão seja uma hora a mais que o deslocamento fornecido.
Os formatos de fuso horário estilo POSIX usam deslocamentos positivos à Oeste de Greenwich, em contraste com a convenção ISO-8601, usando deslocamentos positivos à Leste de Greenwich.
A seguir, exemplos de fusos horários no estilo POSIX:
-
PST8
-
PST8PDT
-
EST5
-
EST5EDT
nota
O Amazon Redshift não valida especificações de fuso horário no estilo POSIX, portanto é possível definir o fuso horário com um valor inválido. Por exemplo, o seguinte comando não retorna um erro, mesmo que ele defina o fuso horário com um valor inválido.
set timezone to ‘xxx36’;
Deslocamento ISO-8601 – O deslocamento do UTC no formulário ±[hh]:[mm]
.
Estes são exemplos de diferenças ISO-8601:
-
-8:00
-
+7:30
Exemplos
O exemplo a seguir define o fuso horário da sessão atual como Nova York.
set timezone = 'America/New_York';
O exemplo a seguir define o fuso horário da sessão atual como UTC–8 (PST).
set timezone to '-8:00';
O exemplo a seguir usa INTERVAL para definir o fuso horário como PST.
set timezone interval '-8 hours'
O exemplo a seguir redefine o fuso horário da sessão atual como o fuso horário padrão do sistema (UTC).
set timezone to default;
Para definir o fuso horário do usuário do banco de dados, use uma instrução ALTER USER … SET. O exemplo a seguir define o fuso horário de dbuser como Nova York. O novo valor persiste para o usuário em todas as sessões subsequentes.
ALTER USER dbuser SET timezone to 'America/New_York';