I PostgreSQL, timeofday()
er en ikke-SQL-standard tidsfunktion, der returnerer den aktuelle dato og klokkeslæt med tidszoneforkortelsen.
Det ligner clock_timestamp()
funktion, bortset fra at den returnerer sit resultat som en formateret text
streng i stedet for et timestamp with time zone
værdi.
Resultatet af begge funktioner ændres under udførelsen af en sætning. Derfor kan du få et andet resultat i forskellige dele af sætningen, hvis du kalder funktionerne flere gange i en enkelt sætning.
Syntaks
Syntaksen ser sådan ud:
timeofday()
Så den accepterer ingen parametre.
Eksempel
Her er et grundlæggende eksempel at demonstrere.
SELECT timeofday();
Resultat:
Tor Jul 02 10:00:27.068776 2020 AEST
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
timeofday(),
pg_sleep(5),
timeofday(),
pg_sleep(3),
timeofday();
Resultat (ved hjælp af lodret output):
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 timeofday()
blev kaldt, var den faktiske tid lidt anderledes. Dette skyldes for det meste pg_sleep()
funktion, men den kan også være lidt anderledes uden den, afhængigt af hvor hurtigt forespørgslen kører.
Her er den igen uden pg_sleep()
opkald.
SELECT
timeofday(),
timeofday(),
timeofday();
Resultat (ved hjælp af lodret output):
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
.