A family of Microsoft relational database management systems designed for ease of use.
Nevertheless, as John has said, the values of the underlying floating point number may not be the same at their full precision, which can be to less than one second. Do as John says and update the values to the value of the return value of the Format function, though I think what he actually meant was:
CDate(Format([datefield], "yyyy-mm-dd hh:nn:ss"))
as the DateValue function returns an integer value, i.e. one which represents a date with a zero time of day, midnight at the start of the day. The Format function returns a string expression, which is of course absolute for each same value, so the resulting floating point numbers by which date/time values are implemented should, after calling the CDate function, be exactly the same for any given formatted date/time regardless of any unseen discrepancies in the original values. The format which John has used here BTW corresponds to the ISO standard for date/time notation, so is internationally unambiguous.
Even without updating the values, you could of course join the tables on:
Format([SmallTable].[DateTimeColumn],"yyyymmddhhnnss") = Format([BigTable].[DateTimeColumn],"yyyymmddhhnnss")
That should guarantee matches regardless of any unseen discrepancies in the underlying values, but performance probably won't be great.