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. ------ Alexander Korotkov Postgres Professional: http://www.postgrespro.com The Russian Postgres Company