SET variável { TO | = } { valor | 'valor' | DEFAULT }
SET TIME ZONE { 'zona_horária' | LOCAL | DEFAULT }
Um parâmetro de tempo de execução cujo valor pode ser mudado.
O novo valor do parâmetro. Pode ser usado DEFAULT para especificar a atribuição do valor padrão do parâmetro. São permitidas listas de cadeias de caracteres, mas construções mais complexas podem precisar estar entre apóstrofos (') ou entre aspas (").
O comando SET altera os parâmetros de configuração de tempo de execução. Os seguintes parâmetros podem ser alterados:
Define a codificação multibyte do cliente. A codificação especificada deve ser suportada pelo servidor.
Esta opção somente está disponível quando o PostgreSQL for gerado com suporte para multibyte.
Escolhe o estilo de representação da data/hora. Duas atribuições separadas são feitas: o padrão de saída para data/hora, e a interpretação da entrada ambígua.
Estes são os estilos de saída para data/hora:
Usa o estilo ISO 8601 para data e hora (YYYY-MM-DD HH:MM:SS). Este é o padrão.
Usa o estilo Oracle/Ingres para data e hora. Observe que este estilo não tem relação com o SQL (que define o estilo ISO 8601). O nome desta opção é apenas um acidente histórico.
Usa o formato tradicional do PostgreSQL.
Usa dd.mm.yyyy para representar as datas numéricas.
As duas opções a seguir determinam o subestilo dos formatos de saída "SQL" e "PostgreSQL", e a interpretação preferencial da entrada de data ambígua.
Usa dd/mm/yyyy para representar as datas numéricas.
Usa mm/dd/yyyy para representar as datas numéricas.
O valor para SET DATESTYLE pode ser um da primeira relação (estilos de saída), ou um da segunda relação (subestilos), ou um de cada separados por vírgula.
A inicialização do formato da data pode ser feita por:
| Atribuição da variável de ambiente PGDATESTYLE. Se PGDATESTYLE estiver definida no ambiente do cliente baseado na libpq, automaticamente a libpq atribui a DATESTYLE o valor de PGDATESTYLE durante a inicialização da conexão. |
| Executar o postmaster utilizando a opção -o -e para atribuir às datas a convenção European. |
A opção DateStyle é prevista apenas para portar aplicativos. Para formatar os valores de data/hora conforme a necessidade, deve-se usar a família de funções to_char.
Define a semente interna para o gerador de números randômicos.
O valor da semente a ser usada pela função random. Os valores permitidos são números de ponto flutuante entre 0 e 1, os quais são então multiplicados por 231-1. Este produto irá estourar a capacidade sem dar mensagem de erro se um número fora deste intervalo for usado.
A semente também pode ser definida através da função setseed do SQL:
SELECT setseed(valor);
Define a codificação multibyte do servidor.
Esta opção somente está disponível quando o PostgreSQL for gerado com suporte para multibyte.
Define a zona horária padrão para a sessão. Os argumentos podem ser uma constante SQL de intervalo de tempo, uma constante inteira ou de precisão dupla, ou uma cadeia de caracteres representando uma zona horária suportada pelo sistema operacional hospedeiro.
Os valores possíveis para a zona horária dependem do sistema operacional. Por exemplo, no Linux o arquivo /usr/share/zoneinfo contém um banco de dados de zona horária.
Abaixo estão mostrados alguns valores válidos para a zona horária:
Zona horária para a Califórnia.
Zona horária para Portugal.
Zona horária para a Itália.
Zona horária com 7 horas de deslocamento à oeste do GMT (equivalente à PDT).
Zona horária com 8 horas de deslocamento à oeste do GMT (equivalente à PST).
Define como sendo a zona horária local (a zona horária do sistema operacional).
Se uma zona horária inválida for especificada, a zona horária torna-se GMT (na maioria dos sistemas).
Se a variável de ambiente PGTZ tiver valor atribuído numa estação do cliente baseada na libpq, automaticamente a libpq atribui à TIMEZONE o valor de PGTZ durante a inicialização da conexão.
Uma relação mais extensa dos parâmetros de tempo de execução pode ser encontrada no Guia do Administrador.
Use o comando SHOW para ver os valores correntes estabelecidos para os parâmetros.
Mensagem retornada se o comando for executado com sucesso.
O parâmetro que se tentou definir não existe.
É necessário ser um superusuário para ter acesso a certas definições.
Certos parâmetros não podem ser mudados após o servidor ter sido inicializado.
Definir o estilo de data tradicional do PostgreSQL com convenções européias:
SET DATESTYLE TO PostgreSQL,European;
Definir a zona horária de Berkeley, Califórnia, usando aspas para preservar os atributos maiúsculos do especificador de zona horária (note que aqui o formato da data/hora é ISO):
SET TIME ZONE "PST8PDT";
SELECT CURRENT_TIMESTAMP AS hoje;
hoje
------------------------
1998-03-31 07:41:21-08Definir a zona horária para a Itália (observe que é necessário o uso de apóstrofos ou de aspas para tratar caracteres especiais):
SET TIME ZONE 'Europe/Rome';
SELECT CURRENT_TIMESTAMP AS hoje;
hoje
------------------------
1998-03-31 17:41:31+02