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 .