Hi Rick,
FCMP and Format are quite useful in handling different time format. Appreciate your example.
Collecting information from web and STS I wrote a function to deal with datetimes in MSSQL data as shown below.
Regards. Qui
/* this is for date AND TIME */
PROC FCMP OUTLIB=sasuser.functions.anydate;
FUNCTION SasDate(anydatestring $);
RETURN (INPUT(anydatestring,anydtdtm22.)); /*RETURN (INPUT(anydatestring,anydtdte22.)); FOR DATE RETUNR ONLY */
ENDSUB;
QUIT;

OPTIONS cmplib=sasuser.functions;

DATA anyDates;
INPUT @1 Style $8.
@10 Value $20.;
DATALINES;
DATE 04JUL1776
MMDDYY 07041876
MMDDYY 07/04/1976
YYMMDD 19960704
N/A Jul 4, 2000
N/A July 4, 2001
DATE 01JAN12
DATETIME 01JAN2013 14:30:08.5
DDMMYY 01012014
JULIAN 2012015
MMDDYY 01/01/16
MONYY JAN2017
TIME 14:30
YYMMDD 20180101
YYQ 19q1
none January 1, 2020
MSSQL 2015-02-17 05:22:48
MSSQL 2016-12-24 05:29:06
MSSQL 2017-07-27 05:35:14
MSSQL 2999-12-31 00:00:00
;
PROC PRINT noobs; RUN;
/* Style Value

DATE 04JUL1776
MMDDYY 07041876
MMDDYY 07/04/1976
YYMMDD 19960704
N/A Jul 4, 2000
N/A July 4, 2001
DATE 01JAN12
DATETIME 01JAN2013 14:30:08.5
DDMMYY 01012014
JULIAN 2012015
MMDDYY 01/01/16
MONYY JAN2017
TIME 14:30
YYMMDD 20180101
YYQ 19q1
none January 1, 2020
MSSQL 2015-02-17 05:22:48
MSSQL 2016-12-24 05:29:06
MSSQL 2017-07-27 05:35:14
MSSQL 2999-12-31 00:00:0
*/

DATA _NULL_;
FORMAT mysasdate datetime22.; /* DATE9.; FOR DATE ONLY */
SET anyDates;
mysasdate=SasDate(Value);
PUT Style ' ' Value ' VIA FUNCTION SasDate ' mysasdate ;
RUN;
/*DATE 04JUL1776 VIA FUNCTION SasDate 04JUL1776:00:00:00
MMDDYY 07041876 VIA FUNCTION SasDate 07APR1876:00:00:00
MMDDYY 07/04/1976 VIA FUNCTION SasDate 07APR1976:00:00:00
YYMMDD 19960704 VIA FUNCTION SasDate 04JUL1996:00:00:00
N/A Jul 4, 2000 VIA FUNCTION SasDate 04JUL2000:00:00:00
N/A July 4, 2001 VIA FUNCTION SasDate 04JUL2001:00:00:00
DATE 01JAN12 VIA FUNCTION SasDate 01JAN2012:00:00:00
DATETIME 01JAN2013 14:30:08.5 VIA FUNCTION SasDate 01JAN2013:14:30:09
DDMMYY 01012014 VIA FUNCTION SasDate 01JAN2014:00:00:00
JULIAN 2012015 VIA FUNCTION SasDate 15JAN2012:00:00:00
MMDDYY 01/01/16 VIA FUNCTION SasDate 01JAN2016:00:00:00
MONYY JAN2017 VIA FUNCTION SasDate 01JAN2017:00:00:00
TIME 14:30 VIA FUNCTION SasDate 01JAN1960:14:30:00
YYMMDD 20180101 VIA FUNCTION SasDate 01JAN2018:00:00:00
YYQ 19q1 VIA FUNCTION SasDate 01JAN2019:00:00:00
none January 1, 2020 VIA FUNCTION SasDate 01JAN2020:00:00:00
MSSQL 2015-02-17 05:22:48 VIA FUNCTION SasDate 17FEB2015:05:22:48
MSSQL 2016-12-24 05:29:06 VIA FUNCTION SasDate 24DEC2016:05:29:06
MSSQL 2017-07-27 05:35:14 VIA FUNCTION SasDate 27JUL2017:05:35:14
MSSQL 2999-12-31 00:00:00 VIA FUNCTION SasDate 31DEC2999:00:00:00 */