In PostgreSQL, clock_timestamp()
is een niet-SQL-standaard tijdfunctie die de huidige datum en tijd retourneert.
Een belangrijke overweging van deze functie is dat het resultaat verandert tijdens de uitvoering van een instructie. Daarom zou u een ander resultaat kunnen krijgen in verschillende delen van de instructie als u de functie meerdere keren binnen één enkele instructie aanroept.
Syntaxis
De syntaxis is zo eenvoudig als maar kan:
clock_timestamp()
Het accepteert dus geen parameters.
Voorbeeld
Hier is een eenvoudig voorbeeld om te demonstreren.
SELECT clock_timestamp();
Resultaat:
2020-07-01 09:53:22.823731+10
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
clock_timestamp(),
pg_sleep(5),
clock_timestamp(),
pg_sleep(3),
clock_timestamp();
Resultaat (met verticale uitvoer):
clock_timestamp | 2020-07-01 09:58:29.744838+10 pg_sleep | clock_timestamp | 2020-07-01 09:58:34.813448+10 pg_sleep | clock_timestamp | 2020-07-01 09:58:37.859197+10
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 clock_timestamp()
werd gebeld, was de werkelijke tijd iets anders. Dit komt voornamelijk door de pg_sleep()
functie, maar het kan zonder deze nog steeds anders zijn, afhankelijk van hoe snel de query wordt uitgevoerd.
Hier is het weer zonder de pg_sleep()
oproepen.
SELECT
clock_timestamp(),
clock_timestamp(),
clock_timestamp();
Resultaat (met verticale uitvoer):
clock_timestamp | 2020-07-01 10:03:10.828557+10 clock_timestamp | 2020-07-01 10:03:10.828558+10 clock_timestamp | 2020-07-01 10:03:10.828558+10
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
.