I PostgreSQL, clock_timestamp()
er en ikke-SQL-standard tidsfunktion, der returnerer den aktuelle dato og klokkeslæt.
En vigtig overvejelse af denne funktion er, at dens resultat ændres under udførelsen af en erklæring. Derfor kan du få et andet resultat i forskellige dele af sætningen, hvis du kalder funktionen flere gange inden for en enkelt sætning.
Syntaks
Syntaksen er så enkel som den bliver:
clock_timestamp()
Så den accepterer ingen parametre.
Eksempel
Her er et grundlæggende eksempel at demonstrere.
SELECT clock_timestamp();
Resultat:
2020-07-01 09:53:22.823731+10
Flere opkald
Her er et grundlæggende eksempel for at demonstrere, hvordan resultaterne kan variere, når du kalder funktionen flere gange i en enkelt SQL-sætning.
\x
SELECT
clock_timestamp(),
pg_sleep(5),
clock_timestamp(),
pg_sleep(3),
clock_timestamp();
Resultat (ved hjælp af lodret output):
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
Her brugte jeg pg_sleep()
funktion til at forsinke udførelsen i flere sekunder. Det første opkald forsinker udførelsen i 5 sekunder, og det andet opkald forsinker udførelsen i 3 sekunder.
Vi kan se det hver gang clock_timestamp()
blev kaldt, var den faktiske tid lidt anderledes. Dette skyldes hovedsageligt pg_sleep()
funktion, men den kan stadig være anderledes uden den, afhængigt af hvor hurtigt forespørgslen kører.
Her er den igen uden pg_sleep()
opkald.
SELECT
clock_timestamp(),
clock_timestamp(),
clock_timestamp();
Resultat (ved hjælp af lodret output):
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
Disse eksempler bruger lodret output (normalt kaldet udvidet visning i psql) for at gøre det nemmere at læse resultaterne.
Du kan skifte udvidet visning i psql med \x
.