On Thu, Aug 2, 2018 at 9:06 PM Alexander Korotkov <a.korot...@postgrespro.ru> wrote: > On Thu, Aug 2, 2018 at 6:17 PM Alexander Korotkov > <a.korot...@postgrespro.ru> wrote: > > After some experiments I found that when you mix spaces and separators > > between two fields, then Oracle takes into account only length of last > > group of spaces/separators. > > > > # SELECT to_timestamp('2018- -01 02', 'YYYY---- --- --MM-DD') FROM > > dual2018-01-01 00:00:00 -10:00 > > (length of last spaces/separators group is 2) > > > > # SELECT to_timestamp('2018- -01 02', 'YYYY---- --- --MM-DD') FROM dual > > 2018-01-01 00:00:00 -10:00 > > (length of last spaces/separators group is 3) > > > > # SELECT to_timestamp('2018- -01 02', 'YYYY---- -- ---MM-DD') FROM dual > > 02.01.2018 00:00:00 > > (length of last spaces/separators group is 2) > > Ooops... I'm sorry, but I've posted wrong results here. Correct > version is here. > > # SELECT to_timestamp('2018- -01 02', 'YYYY---- --- --MM-DD') FROM dual > ORA-01843: not a valid month > (length of last spaces/separators group is 2) > > # SELECT to_timestamp('2018- -01 02', 'YYYY---- -- ---MM-DD') FROM dual > 02.01.2018 00:00:00 > (length of last spaces/separators group is 3) > > So length of last group of spaces/separators in the pattern should be > greater or equal to length of spaces/separators in the input string. > Other previous groups are ignored in Oracle. And that seems > ridiculous for me.
BTW, I've also revised documentation and regression tests. Patch is attached. ------ Alexander Korotkov Postgres Professional: http://www.postgrespro.com The Russian Postgres Company
0001-to-timestamp-format-checking-v15.patch
Description: Binary data