You can change the datetype of the tables to smalldatetime if possible. Otherwise, you can add a smalldatetime column to the existing tables and update it with the date1/date2 values. If neither are possible, then you can do this. But depending on the volume, the performance will be terrible.
Select cast(t1.date1 as smalldatetime) as [DateTime], t1.value1, t2.value2
from #test1 t1
join #test2 t2
on cast(t1.date1 as smalldatetime) = cast(t2.date2 as smalldatetime)