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
.