Dans PostgreSQL, timeofday()
est une fonction d'heure non standard SQL qui renvoie la date et l'heure actuelles, avec l'abréviation du fuseau horaire.
C'est similaire à clock_timestamp()
fonction, sauf qu'elle renvoie son résultat sous la forme d'un text
formaté chaîne plutôt qu'un timestamp with time zone
valeur.
Le résultat des deux fonctions change tout au long de l'exécution d'une instruction. Par conséquent, vous pouvez obtenir un résultat différent dans différentes parties de l'instruction si vous appelez les fonctions plusieurs fois dans une même instruction.
Syntaxe
La syntaxe ressemble à ceci :
timeofday()
Il n'accepte donc aucun paramètre.
Exemple
Voici un exemple de base pour illustrer.
SELECT timeofday();
Résultat :
Thu Jul 02 10:00:27.068776 2020 AEST
Appels multiples
Voici un exemple de base pour montrer comment les résultats peuvent différer lorsque vous appelez la fonction plusieurs fois dans une même instruction SQL.
\x
SELECT
timeofday(),
pg_sleep(5),
timeofday(),
pg_sleep(3),
timeofday();
Résultat (en utilisant la sortie verticale) :
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
Ici, j'ai utilisé le pg_sleep()
fonction pour retarder l'exécution de plusieurs secondes. Le premier appel retarde l'exécution de 5 secondes et le deuxième appel retarde l'exécution de 3 secondes.
Nous pouvons voir qu'à chaque fois timeofday()
a été appelée, l'heure réelle était légèrement différente. Ceci est principalement dû au pg_sleep()
fonction, mais elle pourrait également être légèrement différente sans elle, selon la vitesse d'exécution de la requête.
Le revoilà sans le pg_sleep()
appels.
SELECT
timeofday(),
timeofday(),
timeofday();
Résultat (en utilisant la sortie verticale) :
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
Ces exemples utilisent une sortie verticale (généralement appelée affichage étendu dans psql) pour faciliter la lecture des résultats.
Vous pouvez basculer l'affichage étendu dans psql avec \x
.