df = pd.DataFrame(pd.date_range('20130101', periods=3))
dt64 = np.datetime64('2013-01-01')
res = df - dt64
expected = pd.DataFrame([pd.Timedelta(days=0), pd.Timedelta(days=1),
                                              pd.Timedelta(days=2)])

>>> res
           0
0 1970-01-01
1 1970-01-02
2 1970-01-03

>>> expected
       0
0 0 days
1 1 days
2 2 days

>>> res == expected
      0
0  True
1  True
2  True

So both __sub__ and __eq__ are problematic.

Comment From: jreback

this is a duplicate of #12437