Z TFM, zvýraznění moje:
9.9.4. Aktuální datum/čas
PostgreSQL poskytuje řadu funkcí, které vracejí hodnoty související s aktuálním datem a časem. Tyto standardní funkce SQL všechny vrací hodnoty na základě času zahájení aktuální transakce :
CURRENT_DATE CURRENT_TIME CURRENT_TIMESTAMP CURRENT_TIME(precision) CURRENT_TIMESTAMP(precision) LOCALTIME LOCALTIMESTAMP LOCALTIME(precision) LOCALTIMESTAMP(precision)
...
Protože tyto funkce vracejí čas zahájení aktuální transakce, jejich hodnoty se během transakce nemění. Toto je považováno za rys:záměrem je umožnit jedné transakci, aby měla konzistentní představu o „aktuálním“ čase, takže vícenásobné úpravy v rámci stejné transakce nesou stejné časové razítko.
PostgreSQL také poskytuje funkce, které vracejí počáteční čas aktuálního příkazu a také aktuální aktuální čas v okamžiku, kdy je funkce volána. Úplný seznam nestandardních časových funkcí SQL je:
transaction_timestamp() statement_timestamp() clock_timestamp() timeofday() now()
transaction_timestamp()
je ekvivalentníCURRENT_TIMESTAMP
, ale je pojmenován tak, aby jasně odrážel, co vrací.statement_timestamp()
vrací čas zahájení aktuálního příkazu (konkrétněji čas přijetí poslední zprávy příkazu od klienta).statement_timestamp()
atransaction_timestamp()
vrátí stejnou hodnotu během prvního příkazu transakce, ale může se lišit během následujících příkazů.clock_timestamp()
vrátí aktuální aktuální čas , a proto se jeho hodnota mění i v rámci jednoho příkazu SQL.timeofday()
je historická funkce PostgreSQL. Jakoclock_timestamp()
, vrací aktuální aktuální čas, ale jako formátovaný textový řetězec, nikoli časové razítko s hodnotou časového pásma.now()
je tradiční PostgreSQL ekvivalentní ktransaction_timestamp()
.