SYSDATE is *already* a date, so you do not need to put TO_DATE around it
SQL> SELECT TO_CHAR(TO_DATE(sysdate, 'MM/DD/YYYY'), 'Q') AS MY_QTR FROM DUAL;
SELECT TO_CHAR(TO_DATE(sysdate, 'MM/DD/YYYY'), 'Q') AS MY_QTR FROM DUAL
*
ERROR at line 1:
ORA-01858: a non-numeric character was found where a numeric was expected
SQL> select to_char(sysdate,'Q') AS MY_QTR FROM DUAL;
M
-
1
1 row selected.
You get the error because we (silently) go:
"Oh, you want to do TO_DATE on something....That something MUST be a string, so I'll convert SYSDATE to a STRING using the default format mask, and THEN I'll try convert it to a DATE , and THEN convert it using TO_CHAR with DD/MM/YYYY"