Olhando para a documentação do PostgreSQL não consegui encontrar nada no timenow()
. No entanto, se eu chamar a função, ela funciona.
Então, qual é a diferença entre now()
e timenow()
?
Eu vou adivinhar que now()
é baseado na transação enquanto timenow()
é hora do sistema operacional do servidor ou estou completamente fora?
Abaixo está a definição gerada automaticamente pelo DataGrip. Todas as funções do sistema (por exemplo sum
) todas têm missing source code
e como você pode ver faz parte do pg_catalog
esquema.
Sim, isso é indocumentado, muito antigo, obsoleto há muito tempo.
A principal diferença da
NOW
função é o tipo de dados do resultado.timenow
usou o tipoabstime
, que era menos preciso e propenso ao problema do ano de 2038. Há uma pequena nota na documentação :Este tipo foi completamente removido no postgresql 12 com todas as funções relacionadas. Por código fonte posso confirmar: sim,
timenow
retornará em tempo real a cada chamada, não a hora do início da transação.Você pode obter o mesmo resultado usando
clock_timestamp()
função em vez denow()