timezone - Amazon Redshift

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';