Do TFM, destaques meus:
9.9.4. Data/Hora Atual
O PostgreSQL fornece uma série de funções que retornam valores relacionados à data e hora atuais. Essas funções padrão SQL todos retornam valores com base na hora de início da transação atual :
CURRENT_DATE CURRENT_TIME CURRENT_TIMESTAMP CURRENT_TIME(precision) CURRENT_TIMESTAMP(precision) LOCALTIME LOCALTIMESTAMP LOCALTIME(precision) LOCALTIMESTAMP(precision)
...
Como essas funções retornam a hora de início da transação atual, seus valores não mudam durante a transação. Esta é considerada uma característica:a intenção é permitir que uma única transação tenha uma noção consistente da hora "atual", de modo que várias modificações dentro da mesma transação tenham o mesmo carimbo de hora.
O PostgreSQL também fornece funções que retornam a hora de início da instrução atual, bem como a hora atual real no instante em que a função é chamada. A lista completa de funções de tempo não padrão SQL é:
transaction_timestamp() statement_timestamp() clock_timestamp() timeofday() now()
transaction_timestamp()é equivalente aCURRENT_TIMESTAMP, mas é nomeado para refletir claramente o que ele retorna.statement_timestamp()retorna a hora de início da instrução atual (mais especificamente, a hora de recebimento da última mensagem de comando do cliente).statement_timestamp()etransaction_timestamp()retorna o mesmo valor durante o primeiro comando de uma transação, mas pode diferir durante os comandos subsequentes.clock_timestamp()retorna a hora atual , e, portanto, seu valor muda mesmo dentro de um único comando SQL.timeofday()é uma função histórica do PostgreSQL. Comoclock_timestamp(), ele retorna a hora atual real, mas como uma string de texto formatada em vez de um carimbo de data/hora com o valor do fuso horário.now()é um equivalente tradicional do PostgreSQL atransaction_timestamp().