It is doing what is expected. If you want the month to appear as the minutes, keep using mm. Otherwise, use mi for minutes...


SQL> SELECT TO_CHAR(SYSDATE,'hh24:mm:ss AM')
2 FROM DUAL;

TO_CHAR(SYS
-----------
14:10:04 PM

SQL> ed
Wrote file afiedt.buf

1 SELECT TO_CHAR(SYSDATE,'hh24:mi:ss AM')
2* FROM DUAL
SQL> /

TO_CHAR(SYS
-----------
14:06:16 PM