Holger Jakobs <holger@xxxxxxxxxx> writes: > So in psql now() and statement_timestamp() are identical when not in a > transaction, while in the others the two values vary a little bit, > roughly 100 microseconds. > How come the same statements aren't behaving identical. I'm using a > current PostgreSQL server on a Linux machine. I'd try turning on log_statement = all to see what's actually happening. What seems somewhat likely is that the non-psql cases are wrapping the command you gave in BEGIN/COMMIT, or something along that line. [ thinks for a bit ] It could also be down to the wire protocol used. psql is just sending a simple Query message, but the other two might well be sending Parse/Bind/Execute. IIRC the transaction must be started by Bind, but we may consider the statement timestamp to be the start of processing Execute. regards, tom lane