So it seems like you're trying to make a macro variable match what your code would look like if you were typing it out manually. However, you don't actually need to do that. SAS stores datestimes as numbers, counting the number of seconds from January 1, 1960.
If you convert it to an actual SAS datetime variable you can then use that in your code correctly. Ideally you should use the exact datetime format you're using but you can also do this. FYI - depending on how you created this macro variable in the first place it my be a good idea to change how it's stored from the start to avoid this issue entirely.
%let date_start = %sysfunc(inputn(29Jan16:11:07:33, anydtdtm.));
....
where t1.datetime <= &date_start;