It’s not TDP, it’s your query. Try this instead, if you’re just matching on dates, not times:
(CASE
WHEN TRUNC(DATE1) = TRUNC(SUBQUERY.DATE2) THEN ‘DATES_MATCH’
ELSE ‘NO_MATCH’
END)
There’s no reason to convert the date string to char - that’s what’s causing the confusion. If you were doing your conversion in order to drop the time, TRUNC() is what you should use instead.