without seeing the real data, you may ensure that both dates have the same data-type (in this case a date without decimals (= hours)).
Date(FLOOR(ReportDate),'M/D/YYYY') as ReportDate
Date(MonthEnd(AddMonths(FLOOR(P_ReportDate),-11)),'M/D/YYYY') AS ReportDate
may do the trick already.
Else you may have to check the import-formats and use DATE# in order to force the reading in a different format than your common format.
Seems that you are not loading a date.
Did you try to load the date-field with DATE#(), e.g.
DATE(DATE#(Field2Read, 'M/D/YYYY'), 'YYYYMMDD')
So the inner would ask QV to read the field in the given format M/D/YYYY (or whatever it is). This will result technically in a number. The outer format then will ask QV to show this number as a date in the format YYYYMMDD (or any other, as per your choice).