Re: 'now' is sometimes not now - but current_timestamp is
| От | Tom Lane |
|---|---|
| Тема | Re: 'now' is sometimes not now - but current_timestamp is |
| Дата | |
| Msg-id | 29408.1160748863@sss.pgh.pa.us обсуждение исходный текст |
| Ответ на | 'now' is sometimes not now - but current_timestamp is (Guillaume Cottenceau <gc@mnc.ch>) |
| Ответы |
Re: 'now' is sometimes not now - but current_timestamp is
|
| Список | pgsql-jdbc |
Guillaume Cottenceau <gc@mnc.ch> writes:
> I update a row's TIMESTAMP WITH TIME ZONE column value with:
> ... SET <colname> = 'now'::TIMESTAMP WITH TIME ZONE ...
What you will have there is a timestamp-type constant with the value
that now() had at the time the statement was parsed. If you re-use a
prepared statement then the value will be out of date.
> Initially, I was hesitating with CURRENT_TIMESTAMP, but in a
> table description, a column with a default value of 'now' or
> CURRENT_TIMESTAMP will both be printed "not null default
> ('now'::text)::timestamp(6) with time zone" so I assumed the
> correct way of writing it was 'now' and then to cast to a
> timestamp with/without time zone.
If you are going to copy the implementation of CURRENT_TIMESTAMP,
you should at least copy it accurately. (Hint: the cast from
text to timestamp is not immutable.) But why are you not just
using CURRENT_TIMESTAMP, rather than trying to outsmart the system?
regards, tom lane
В списке pgsql-jdbc по дате отправления: