John,
Datetime data is stored to milliseconds but we only have access to the second. This causes the problem you are seeing. The datetimes you are trying to match up are not exactly the same values in the table. I would split the join up so that the datetime stuff is in the where clause where it can be a range of;
... WHERE File1.DateTime >= File2.dateTime ;
AND File1.DateTime <= File2.DateTime+1 ...