6

There is a SQL function from Oracle to_date('26 Jul 2016, 05:15:58 AM','DD Mon YYYY, HH:MI:SS AM'), and it throws exception "Illegal pattern character 'o'" in H2.

How shall I change it to make it work in H2?

David Brossard
  • 13,584
  • 6
  • 55
  • 88
Iceglaze
  • 329
  • 2
  • 4
  • 10

2 Answers2

11

The equivalent function of TO_DATE() in H2 is PARSEDATETIME().

This is how you should use it with your sample data:

PARSEDATETIME('26 Jul 2016, 05:15:58 AM','dd MMM yyyy, hh:mm:ss a','en')

Be careful not to use HH:mm:ss otherwise the AM/PM detection will not work.

Christian MICHON
  • 2,140
  • 2
  • 19
  • 30
0

Here is another example, integrating milliseconds:

The original value in Oracle is 13-APR-17 10.49.36.558000000 PM. First you need to get rid of the extra zeros and end up with 13-APR-17 10.49.36.558 PM then you can call

call PARSEDATETIME('13-APR-17 10.49.36.558000000 PM','dd-MMM-yy hh.mm.ss.SSS a','en');

Note the additional format parameter .SSS enter image description here

David Brossard
  • 13,584
  • 6
  • 55
  • 88