In PostgreSQL, timeofday()
is een niet-SQL-standaard tijdfunctie die de huidige datum en tijd retourneert, met de afkorting van de tijdzone.
Het is vergelijkbaar met de clock_timestamp()
functie, behalve dat het zijn resultaat retourneert als een opgemaakte text
tekenreeks in plaats van een timestamp with time zone
waarde.
Het resultaat van beide functies verandert tijdens de uitvoering van een instructie. Daarom kunt u een ander resultaat krijgen in verschillende delen van de instructie als u de functies meerdere keren binnen een enkele instructie aanroept.
Syntaxis
De syntaxis gaat als volgt:
timeofday()
Het accepteert dus geen parameters.
Voorbeeld
Hier is een eenvoudig voorbeeld om te demonstreren.
SELECT timeofday();
Resultaat:
Thu Jul 02 10:00:27.068776 2020 AEST
Meerdere oproepen
Hier is een eenvoudig voorbeeld om te laten zien hoe de resultaten kunnen verschillen wanneer u de functie meerdere keren aanroept binnen een enkele SQL-instructie.
\x
SELECT
timeofday(),
pg_sleep(5),
timeofday(),
pg_sleep(3),
timeofday();
Resultaat (met verticale uitvoer):
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
Hier gebruikte ik de pg_sleep()
functie om de uitvoering enkele seconden uit te stellen. De eerste oproep vertraagt de uitvoering met 5 seconden en de tweede oproep vertraagt de uitvoering met 3 seconden.
We kunnen zien dat elke keer timeofday()
werd gebeld, was de werkelijke tijd iets anders. Dit komt voornamelijk door de pg_sleep()
functie, maar het kan ook iets anders zijn zonder deze functie, afhankelijk van hoe snel de query wordt uitgevoerd.
Hier is het weer zonder de pg_sleep()
oproepen.
SELECT
timeofday(),
timeofday(),
timeofday();
Resultaat (met verticale uitvoer):
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
Deze voorbeelden gebruiken verticale uitvoer (meestal uitgebreide weergave genoemd in psql) om het gemakkelijker te maken om de resultaten te lezen.
U kunt de uitgebreide weergave in psql schakelen met \x
.