I recommend adding a new column using the proper DATETIME data type.
ALTER TABLE employee ADD COLUMN datecreated2 DATETIME;
Then copy these improper date values into the new column.
UPDATE employee SET datecolumn2 = COALESCE(
STR_TO_DATE(datecolumn, '%m-%d-%Y'),
STR_TO_DATE(datecolumn, '%m/%d/%Y'),
STR_TO_DATE(datecolumn, '%m-%d-%Y %l:%i'),
STR_TO_DATE(datecolumn, '%b %d %Y'),
STR_TO_DATE(datecolumn, '%Y%m%d'),
STR_TO_DATE(datecolumn, '%M %e %Y %r'),
STR_TO_DATE(datecolumn, '%b %e %Y %r'));
I think that should handle all the formats you showed above. I suggest reading https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_date-format and familiarize yourself with those format codes.
The nice thing about STR_TO_DATE() is that it returns NULL if it can't parse its input datetime argument using the format string argument. So you can use it with COALESCE(), which takes multiple arguments and returns the first non-NULL argument.
Once you do this, I expect there might be a few cases where some existing data wasn't parsed by any of the format strings. In these cases, datecreated2 will still be NULL because COALESCE() returns NULL if all of its arguments are NULL.
Find the stragglers this way:
SELECT datecreated FROM employee WHERE datecreated2 IS NULL;
Then you can try to come up with further format strings to parse the stragglers, or else if there are few enough, just set them yourself manually, one by one.