Re: values from now() in the same transaction - Mailing list pgsql-general

From Chris Browne
Subject Re: values from now() in the same transaction
Date
Msg-id 60mz3d7kib.fsf@dba2.int.libertyrms.com
Whole thread Raw
In response to values from now() in the same transaction  (Vladimir Zelinski <zelvlad@yahoo.com>)
Responses Re: values from now() in the same transaction  (Bruce Momjian <bruce@momjian.us>)
Re: values from now() in the same transaction  (Ron Johnson <ron.l.johnson@cox.net>)
List pgsql-general
zelvlad@yahoo.com (Vladimir Zelinski) writes:
> I tried function now(),current_timestamp() but all of
> them behave similar.
>
> I don't believe that it's bug, probably it's a feature
> of the postgreSql database.

Indeed, that is intentional.  CURRENT_TIMESTAMP and NOW() return the
time at which the transaction began.

> Is any way to insert a timestamp within the same transaction that
> would have current system time (not time of the beginning of the
> transaction)?

> With other words, I would like to see different timestamps on first
> and last timestamp.

timeofday() is what you are looking for.

Consider the following series of queries; they demonstrate how the
behaviours of now() and timeofday() differ fairly successfully...

oxrsorg=# begin;
BEGIN
oxrsorg=# select now();
              now
-------------------------------
 2007-02-16 23:23:23.094817+00
(1 row)

oxrsorg=# select timeofday();
              timeofday
-------------------------------------
 Fri Feb 16 23:23:31.481780 2007 UTC
(1 row)

oxrsorg=# select timeofday();
              timeofday
-------------------------------------
 Fri Feb 16 23:23:32.981137 2007 UTC
(1 row)

oxrsorg=# select timeofday();
              timeofday
-------------------------------------
 Fri Feb 16 23:23:33.988252 2007 UTC
(1 row)

oxrsorg=# select now();
              now
-------------------------------
 2007-02-16 23:23:23.094817+00
(1 row)

oxrsorg=# select timeofday();
              timeofday
-------------------------------------
 Fri Feb 16 23:23:38.643998 2007 UTC
(1 row)

oxrsorg=# select now();
              now
-------------------------------
 2007-02-16 23:23:23.094817+00
(1 row)


--
(reverse (concatenate 'string "ofni.secnanifxunil" "@" "enworbbc"))
http://linuxfinances.info/info/finances.html
Rules of  the Evil Overlord #189. "I  will never tell the  hero "Yes I
was the one who  did it, but you'll never be able  to prove it to that
incompetent  old fool."  Chances  are, that  incompetent  old fool  is
standing behind the curtain."  <http://www.eviloverlord.com/>

pgsql-general by date:

Previous
From: "John D. Burger"
Date:
Subject: Anticipatory privileges
Next
From: Bruce Momjian
Date:
Subject: Re: values from now() in the same transaction