29%macro mf_dttmfmts(type);
31%let type=%upcase(&type);
34%
if %length(&type)=0 %then %let type=INVALID;
36%
if &type=DATE %then %
do;
38 'DATE',
'YYMMDD',
'B8601DA',
'DAY',
'DDMMYY',
'DDMMYYB',
'DDMMYYC',
'DDMMYYD',
39 'DDMMYYN',
'DDMMYYP',
'DDMMYYS',
'DDMMYYx',
'DOWNAME',
'E8601DA',
'JULDAY',
40 'JULIAN',
'MMDDYY',
'MMDDYYB',
'MMDDYYC',
'MMDDYYD',
'MMDDYYN',
'MMDDYYP',
41 'MMDDYYS',
'MMDDYYx',
'MMYY',
'MMYYC',
'MMYYD',
'MMYYN',
'MMYYP',
'MMYYS',
'MMYYx',
42 'MONNAME',
'MONTH',
'MONYY',
'PDJULG',
'PDJULI',
'QTR',
'QTRR',
'WEEKDATE',
43 'WEEKDATX',
'WEEKDAY',
'WEEKU',
'WEEKV',
'WEEKW',
'WORDDATE',
'WORDDATX',
'YEAR',
44 'YYMM',
'YYMMC',
'YYMMD',
'YYMMDDB',
'YYMMDDC',
'YYMMDDD',
'YYMMDDN',
'YYMMDDP',
45 'YYMMDDS',
'YYMMDDx',
'YYMMN',
'YYMMP',
'YYMMS',
'YYMMx',
'YYMON',
'YYQ',
'YYQC',
46 'YYQD',
'YYQN',
'YYQP',
'YYQR',
'YYQRC',
'YYQRD',
'YYQRN',
'YYQRP',
'YYQRS',
47 'YYQRx',
'YYQS',
'YYQx',
'YYQZ',
'NLDATE'
49%
else %
if &type=DATETIME %then %
do;
51 'DATETIME',
'B8601DN',
'B8601DT',
'B8601DZ',
'DATEAMPM',
'DTDATE',
'DTMONYY',
52 'DTWKDATX',
'DTYEAR',
'DTYYQC',
'E8601DN',
'E8601DT',
'E8601DZ',
'NLDATM'
54%
else %
if &type=TIME %then %
do;
56 'TIME',
'B8601LZ',
'B8601TM',
'B8601TZ',
'E8601LZ',
'E8601TM',
'E8601TZ',
'HHMM',
57 'HOUR',
'MMSS',
'TIMEAMPM',
'TOD'
60%mp_abort(iftrue=(&found=0)
62 ,msg=%str(type must be DATE, DATETIME or TIME - got: &type)