Re: to_timestamp not stable if date string shorter than
От | Stephan Szabo |
---|---|
Тема | Re: to_timestamp not stable if date string shorter than |
Дата | |
Msg-id | 20030902184240.T56775-100000@megazone.bigpanda.com обсуждение исходный текст |
Ответ на | Re: to_timestamp not stable if date string shorter than (Stephan Szabo <sszabo@megazone.bigpanda.com>) |
Ответы |
Re: to_timestamp not stable if date string shorter than
Re: to_timestamp not stable if date string shorter than |
Список | pgsql-bugs |
On Tue, 2 Sep 2003, Stephan Szabo wrote: > > On Tue, 2 Sep 2003, Tom Lane wrote: > > > "Stacy White" <harsh@computer.org> writes: > > > to_timestamp appears to pick up the time-of-day from the previous call's > > > return value if a date string has no time component. For example: > > > > Weird. I do not see that here, on either 7.3.4 or current sources. > > Can anyone else reproduce it? > > > > For the record, I get: > > > > regression=# select to_timestamp('2003-06-01', 'YYYY-MM-DD HH24:MI:SS') ; > > to_timestamp > > ------------------------ > > 2003-06-01 00:00:00-04 > > (1 row) > > > > regression=# select to_timestamp('2003-06-02 12:13:14', 'YYYY-MM-DD HH24:MI:SS') ; > > to_timestamp > > ------------------------ > > 2003-06-02 12:13:14-04 > > (1 row) > > > > regression=# select to_timestamp('2003-06-01', 'YYYY-MM-DD HH24:MI:SS') ; > > to_timestamp > > ------------------------ > > 2003-06-01 00:00:00-04 > > (1 row) > > I seem to get the incorrect behavior on my 7.4 beta 1 system. The > behavior on my machine is really wierd in fact even without times > involved: > > test=# select to_timestamp('2003-06-04', 'YYYY-MM-DD HH24:MI:SS') ; > to_timestamp > ------------------------ > 2003-06-04 00:00:00-07 > (1 row) > > test=# select to_timestamp('2003-06', 'YYYY-MM-DD HH24:MI:SS') ; > to_timestamp > ------------------------ > 2003-06-04 00:00:00-07 > (1 row) > > test=# select to_timestamp('2003', 'YYYY-MM-DD HH24:MI:SS') ; > to_timestamp > ------------------------ > 2003-01-01 00:04:00-08 > (1 row) > > test=# select to_timestamp('2003-06', 'YYYY-MM-DD HH24:MI:SS') ; > to_timestamp > ------------------------ > 2003-06-04 00:00:00-07 > (1 row) > > test=# select to_timestamp('2003-07', 'YYYY-MM-DD HH24:MI:SS') ; > to_timestamp > ------------------------ > 2003-07-04 00:00:00-07 > (1 row) From my beta1 machine it looks to me that to_timestamp is willing to read off the end of the input string sometimes: Breakpoint 3, DCH_processor (node=0x82d8da0, inout=0x8347860 "2003-06", flag=2, data=0xbfffd080) at formatting.c:1302 1302 len = n->key->action(n->key->id, s, n->suffix, flag, n, data); (gdb) print s $3 = 0x8347860 "2003-06" (gdb) cont Continuing. Breakpoint 3, DCH_processor (node=0x82d8da0, inout=0x8347860 "2003-06", flag=2, data=0xbfffd080) at formatting.c:1302 1302 len = n->key->action(n->key->id, s, n->suffix, flag, n, data); (gdb) print s $4 = 0x8347865 "06" (gdb) cont Continuing. ** All of a sudden at this following breakpoint s has more text in it and is past the \0 which would be at 0x8347867 AFAICS. *** Breakpoint 3, DCH_processor (node=0x82d8da0, inout=0x8347860 "2003-06", flag=2, data=0xbfffd080) at formatting.c:1302 1302 len = n->key->action(n->key->id, s, n->suffix, flag, n, data); (gdb) print s $5 = 0x8347868 "04 02:02:02" (gdb) cont Continuing. Breakpoint 3, DCH_processor (node=0x82d8da0, inout=0x8347860 "2003-06", flag=2, data=0xbfffd080) at formatting.c:1302 1302 len = n->key->action(n->key->id, s, n->suffix, flag, n, data); (gdb) print s $6 = 0x834786b "02:02:02" (gdb) --- I don't entirely understand all of what that code is doing, but I think there's something in there that needs to get fixed.
В списке pgsql-bugs по дате отправления:
Следующее
От: Stephan SzaboДата:
Сообщение: Re: to_timestamp not stable if date string shorter than