Since this is an Oracle error, moving from MySQL to other databases.
For your first problem:
I don't think Oracle has a GetDate function in it. Use sysdate instead:
You may need to issue a truncation on both the field and the sysdate as the sysdate for sure contains the timestamp. A simple:
WHERE uio.fes_start_date < sysdate
Should solve that issue.
WHERE trunc(uio.fes_start_date) < trunc(sysdate)
For your second problem:
31 is not a valid month. Check your format, the month and day blocks are wrong, flip them and I expect that should work.
Beaten in. ORA error is definitely oracle, and oracle has the to_date function.