I PostgreSQL, clock_timestamp()
är en icke-SQL-standard tidsfunktion som returnerar aktuellt datum och tid.
En viktig faktor för denna funktion är att dess resultat förändras under körningen av en sats. Därför kan du få ett annat resultat i olika delar av satsen om du anropar funktionen flera gånger inom en enskild sats.
Syntax
Syntaxen är hur enkel som helst:
clock_timestamp()
Så den accepterar inga parametrar.
Exempel
Här är ett grundläggande exempel att visa.
SELECT clock_timestamp();
Resultat:
2020-07-01 09:53:22.823731+10
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
clock_timestamp(),
pg_sleep(5),
clock_timestamp(),
pg_sleep(3),
clock_timestamp();
Resultat (med vertikal utdata):
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
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 clock_timestamp()
kallades, var den faktiska tiden något annorlunda. Detta beror främst på pg_sleep()
funktion, men den kan fortfarande vara annorlunda utan den, beroende på hur snabbt frågan körs.
Här är den igen utan pg_sleep()
samtal.
SELECT
clock_timestamp(),
clock_timestamp(),
clock_timestamp();
Resultat (med vertikal utdata):
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
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
.