I PostgreSQL, timeofday()
är en icke-SQL-standard tidsfunktion som returnerar aktuellt datum och tid, med tidszonens förkortning.
Det liknar clock_timestamp()
funktion, förutom att den returnerar sitt resultat som en formaterad text
sträng snarare än en timestamp with time zone
värde.
Resultatet av båda funktionerna ändras under körningen av en sats. Därför kan du få ett annat resultat i olika delar av satsen om du anropar funktionerna flera gånger inom en enskild sats.
Syntax
Syntaxen ser ut så här:
timeofday()
Så den accepterar inga parametrar.
Exempel
Här är ett grundläggande exempel att visa.
SELECT timeofday();
Resultat:
Tor Jul 02 10:00:27.068776 2020 AEST
Flera samtal
Här är ett grundläggande exempel för att visa hur resultaten kan skilja sig åt när du anropar funktionen flera gånger inom en enda SQL-sats.
\x
SELECT
timeofday(),
pg_sleep(5),
timeofday(),
pg_sleep(3),
timeofday();
Resultat (med vertikal utdata):
Här använde jag pg_sleep()
funktion för att fördröja exekveringen i flera sekunder. Det första samtalet fördröjer exekveringen i 5 sekunder och det andra samtalet fördröjer exekveringen i 3 sekunder.
Vi kan se det varje gång timeofday()
kallades, var den faktiska tiden något annorlunda. Detta beror mest på pg_sleep()
funktion, men den kan också vara något annorlunda utan den, beroende på hur snabbt frågan körs.
Här är den igen utan pg_sleep()
samtal.
SELECT
timeofday(),
timeofday(),
timeofday();
Resultat (med vertikal utdata):
Dessa exempel använder vertikal utdata (vanligtvis kallad expanderad visning i psql) för att göra det lättare att läsa resultaten.
Du kan växla utökad visning i psql med \x
.