Re:Re: Re: [BUGS] Return value error of‘to_timestamp’

myzhen <zhenmingyang@yeah.net>

From: 甄明洋 <zhenmingyang@yeah.net>
To: "David G. Johnston" <david.g.johnston@gmail.com>
Cc: "Aleksander Alekseev" <a.alekseev@postgrespro.ru>, pgsql-bugs <pgsql-bugs@postgresql.org>
Date: 2016-08-17T11:06:14Z
Lists: pgsql-bugs
Thank you very much !

I have another question for datetime type, it is GUC parameter 'timezone' , example as follow:


postgres=# set timezone='-08:00';
SET
postgres=# show timezone;
 TimeZone 
----------
 -08:00
(1 row)


postgres=# select timestamptz'1990-1-1 11:11:11.123 -08:00' ;
        timestamptz         
----------------------------
 1990-01-02 03:11:11.123+08
(1 row)


postgres=# select timestamptz'1990-1-1 11:11:11.123 +08:00' ;
        timestamptz         
----------------------------
 1990-01-01 11:11:11.123+08
(1 row)


postgres=# 


   this looks like, the sign  plus and minus are inverted, i dont understand why?




在 2016-08-04 23:06:40,"David G. Johnston" <david.g.johnston@gmail.com> 写道:

On Thu, Aug 4, 2016 at 11:03 AM, Aleksander Alekseev <a.alekseev@postgrespro.ru> wrote:

>> postgres=# select to_timestamp('1990-1-1 11:11:11.123456789',
>> 'YYYY-MM-DD HH24:MI:SS.US'); to_timestamp
>> -------------------------------
>>  1990-01-01 11:13:14.456789+08
>> (1 row)
>> postgres=#

> Working as designed...

Maybe it means that current design is poor. However since this behavior
is documented there are users who might depend on it. So I doubt it
will be changed any time soon.

Though I wonder maybe we should consider introducing a new set of
time-related procedures with different behavior (to_timestamp_strict?),
that would be more obvious to users.



Discussions ongoing...
an archive search should be fruitful.


David J.