Van TFM, markeert de mijne:
9.9.4. Huidige datum/tijd
PostgreSQL biedt een aantal functies die waarden retourneren die gerelateerd zijn aan de huidige datum en tijd. Deze SQL-standaardfuncties retourneren allemaal waarden op basis van de starttijd van de huidige transactie :
CURRENT_DATE CURRENT_TIME CURRENT_TIMESTAMP CURRENT_TIME(precision) CURRENT_TIMESTAMP(precision) LOCALTIME LOCALTIMESTAMP LOCALTIME(precision) LOCALTIMESTAMP(precision)
...
Aangezien deze functies de starttijd van de huidige transactie retourneren, veranderen hun waarden niet tijdens de transactie. Dit wordt als een functie beschouwd:het is de bedoeling dat een enkele transactie een consistent idee krijgt van de "huidige" tijd, zodat meerdere wijzigingen binnen dezelfde transactie hetzelfde tijdstempel dragen.
PostgreSQL biedt ook functies die de starttijd van de huidige instructie retourneren, evenals de werkelijke huidige tijd op het moment dat de functie wordt aangeroepen. De volledige lijst van niet-SQL-standaard tijdfuncties is:
transaction_timestamp() statement_timestamp() clock_timestamp() timeofday() now()
transaction_timestamp()
is gelijk aanCURRENT_TIMESTAMP
, maar heeft een naam om duidelijk weer te geven wat het teruggeeft.statement_timestamp()
geeft de starttijd van de huidige instructie terug (meer specifiek de tijd van ontvangst van het laatste opdrachtbericht van de client).statement_timestamp()
entransaction_timestamp()
dezelfde waarde teruggeven tijdens het eerste commando van een transactie, maar kan verschillen tijdens volgende commando's.clock_timestamp()
geeft de huidige huidige tijd terug , en daarom verandert de waarde ervan zelfs binnen een enkele SQL-opdracht.timeofday()
is een historische PostgreSQL-functie. Likeclock_timestamp()
, het retourneert de werkelijke huidige tijd, maar als een opgemaakte tekenreeks in plaats van een tijdstempel met tijdzonewaarde.now()
is een traditioneel PostgreSQL-equivalent vantransaction_timestamp()
.