От TFM, подчертава моето:
9.9.4. Текуща дата/час
PostgreSQL предоставя редица функции, които връщат стойности, свързани с текущата дата и час. Тези стандартни SQL функции всички връщат стойности въз основа на началния час на текущата транзакция :
CURRENT_DATE CURRENT_TIME CURRENT_TIMESTAMP CURRENT_TIME(precision) CURRENT_TIMESTAMP(precision) LOCALTIME LOCALTIMESTAMP LOCALTIME(precision) LOCALTIMESTAMP(precision)
...
Тъй като тези функции връщат началния час на текущата транзакция, техните стойности не се променят по време на транзакцията. Това се счита за характеристика:намерението е да се позволи на една транзакция да има последователна представа за „текущото“ време, така че множеството модификации в рамките на една и съща транзакция да носят едно и също времеви печат.
PostgreSQL също така предоставя функции, които връщат началния час на текущия израз, както и действителното текущо време в момента, в който функцията е извикана. Пълният списък с не-SQL-стандартни времеви функции е:
transaction_timestamp() statement_timestamp() clock_timestamp() timeofday() now()
transaction_timestamp()
е еквивалентен наCURRENT_TIMESTAMP
, но има име, за да отразява ясно какво връща.statement_timestamp()
връща началния час на текущия израз (по-точно, времето на получаване на последното командно съобщение от клиента).statement_timestamp()
иtransaction_timestamp()
връща същата стойност по време на първата команда на транзакция, но може да се различава при следващите команди.clock_timestamp()
връща действителното текущо време , и следователно стойността му се променя дори в рамките на една SQL команда.timeofday()
е историческа функция на PostgreSQL. Катоclock_timestamp()
, връща действителното текущо време, но като форматиран текстов низ, а не времеви печат със стойност на часовата зона.now()
е традиционен PostgreSQL еквивалент наtransaction_timestamp()
.