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

Como timeofday() funciona no PostgreSQL


No PostgreSQL, timeofday() é uma função de hora não padrão SQL que retorna a data e hora atuais, com a abreviação de fuso horário.

É semelhante ao clock_timestamp() função, exceto que ela retorna seu resultado como um text formatado string em vez de um timestamp with time zone valor.

O resultado de ambas as funções muda ao longo da execução de uma instrução. Portanto, você pode obter um resultado diferente em diferentes partes da instrução se chamar as funções várias vezes em uma única instrução.

Sintaxe


A sintaxe fica assim:
timeofday()

Portanto, não aceita nenhum parâmetro.

Exemplo


Aqui está um exemplo básico para demonstrar.
SELECT timeofday();

Resultado:
Thu Jul 02 10:00:27.068776 2020 AEST

Várias chamadas


Aqui está um exemplo básico para demonstrar como os resultados podem diferir quando você chama a função várias vezes em uma única instrução SQL.
\x
SELECT 
  timeofday(),
  pg_sleep(5),
  timeofday(),
  pg_sleep(3),
  timeofday();

Resultado (usando saída vertical):
timeofday | Thu Jul 02 10:02:23.060770 2020 AEST
pg_sleep  | 
timeofday | Thu Jul 02 10:02:28.131195 2020 AEST
pg_sleep  | 
timeofday | Thu Jul 02 10:02:31.192749 2020 AEST

Aqui, usei o pg_sleep() função para atrasar a execução por vários segundos. A primeira chamada atrasa a execução por 5 segundos e a segunda chamada atrasa a execução por 3 segundos.

Podemos ver que cada vez que timeofday() foi chamado, a hora real era ligeiramente diferente. Isso se deve principalmente ao pg_sleep() função, no entanto, também pode ser ligeiramente diferente sem ela, dependendo da rapidez com que a consulta é executada.

Aqui está novamente sem o pg_sleep() chamadas.
SELECT 
  timeofday(),
  timeofday(),
  timeofday();

Resultado (usando saída vertical):
timeofday | Thu Jul 02 10:03:26.044065 2020 AEST
timeofday | Thu Jul 02 10:03:26.044076 2020 AEST
timeofday | Thu Jul 02 10:03:26.044080 2020 AEST

Esses exemplos usam saída vertical (geralmente chamada de exibição expandida no psql) para facilitar a leitura dos resultados.

Você pode alternar a exibição expandida no psql com \x .