Agree with @Reeza. I don't see a way to tell CATX that the value that looks like a number is not a number. And generally for concatenation in the macro language CAT functions are not needed, as shown in the accepted solution.
That said, if you went the route of adding quote marks, in the macro language those quote marks are part of the value (not a way to indicate that a value is text). The good news is that when a quote mark (or any other non-numeric character) is part of the value, CATX will see that it is not a number. But because those quote marks become part of the value, you would have to removed them yourself.
So in theory, you could hack it as something like:
40 %let date=26Jan2017;
41 %let time=0012;
42 %let datt=%sysfunc(compress(%sysfunc(catx(T,"&date","&time")),%str(%")));
43 %put &datt;
26Jan2017T0012
... View more