Från TFM, belyser min:
9.9.4. Aktuellt datum/tid
PostgreSQL tillhandahåller ett antal funktioner som returnerar värden relaterade till aktuellt datum och tid. Dessa SQL-standardfunktioner alla returvärden baserat på starttiden för den aktuella transaktionen :
CURRENT_DATE CURRENT_TIME CURRENT_TIMESTAMP CURRENT_TIME(precision) CURRENT_TIMESTAMP(precision) LOCALTIME LOCALTIMESTAMP LOCALTIME(precision) LOCALTIMESTAMP(precision)
...
Eftersom dessa funktioner returnerar starttiden för den aktuella transaktionen, ändras inte deras värden under transaktionen. Detta anses vara en funktion:avsikten är att tillåta en enskild transaktion att ha en konsekvent uppfattning om den "aktuella" tiden, så att flera modifieringar inom samma transaktion har samma tidsstämpel.
PostgreSQL tillhandahåller också funktioner som returnerar starttiden för den aktuella satsen, såväl som den faktiska aktuella tiden vid det ögonblick då funktionen anropas. Den kompletta listan över icke-SQL-standard tidsfunktioner är:
transaction_timestamp() statement_timestamp() clock_timestamp() timeofday() now()
transaction_timestamp()
motsvararCURRENT_TIMESTAMP
, men är namngiven för att tydligt återspegla vad den returnerar.statement_timestamp()
returnerar starttiden för den aktuella satsen (mer specifikt tidpunkten för mottagandet av det senaste kommandomeddelandet från klienten).statement_timestamp()
ochtransaction_timestamp()
returnerar samma värde under det första kommandot i en transaktion, men kan skilja sig under efterföljande kommandon.clock_timestamp()
returnerar den faktiska aktuella tiden , och därför ändras dess värde även inom ett enda SQL-kommando.timeofday()
är en historisk PostgreSQL-funktion. Gillaclock_timestamp()
, returnerar den aktuella tiden, men som en formaterad textsträng snarare än en tidsstämpel med tidszonvärde.now()
är en traditionell PostgreSQL som motsvarartransaction_timestamp()
.