sql >> Base de Datos >  >> RDS >> PostgreSQL

Cómo funciona timeofday() en PostgreSQL

En PostgreSQL, timeofday() es una función de hora no estándar de SQL que devuelve la fecha y la hora actuales, con la abreviatura de la zona horaria.

Es similar al clock_timestamp() función, excepto que devuelve su resultado como un text formateado cadena en lugar de una timestamp with time zone valor.

El resultado de ambas funciones cambia a lo largo de la ejecución de una instrucción. Por lo tanto, podría obtener un resultado diferente en diferentes partes de la declaración si llama a las funciones varias veces dentro de una sola declaración.

Sintaxis

La sintaxis es así:

timeofday()

Por lo tanto, no acepta ningún parámetro.

Ejemplo

Aquí hay un ejemplo básico para demostrarlo.

SELECT timeofday();

Resultado:

Thu Jul 02 10:00:27.068776 2020 AEST

Múltiples llamadas

Aquí hay un ejemplo básico para demostrar cómo los resultados pueden diferir cuando llama a la función varias veces dentro de una sola instrucción SQL.

\x
SELECT 
  timeofday(),
  pg_sleep(5),
  timeofday(),
  pg_sleep(3),
  timeofday();

Resultado (usando salida 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

Aquí, usé pg_sleep() función para retrasar la ejecución durante varios segundos. La primera llamada retrasa la ejecución durante 5 segundos y la segunda llamada retrasa la ejecución durante 3 segundos.

Podemos ver que cada vez timeofday() fue llamado, la hora real fue ligeramente diferente. Esto se debe principalmente a pg_sleep() Sin embargo, también podría ser ligeramente diferente sin ella, dependiendo de qué tan rápido se ejecute la consulta.

Aquí está de nuevo sin pg_sleep() llamadas.

SELECT 
  timeofday(),
  timeofday(),
  timeofday();

Resultado (usando salida 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

Estos ejemplos usan salida vertical (generalmente llamada visualización expandida en psql) para facilitar la lectura de los resultados.

Puede alternar la visualización expandida en psql con \x .