This is related to a recent change to filtering that was made in version 1.5.0 to prevent data loss in certain scenarios. More details can be found in the linked release notes. However, if the date your data was indexed is far off from the date it came in, then you will get substantially different data. This could happen if you reindexed ElasticSearch.
A few short term workarounds:
You could downgrade the DET to a version before 1.5
You could manually set the pagination_mode column to "date_modified" in the commcare_export_runs table
I rolled back commcare-export to version 1.4.0 and able to fiter by date using --since and --until parameters. and got around 300k rows (it seems filtering works compared to 3milion data)
but we recently reindexed elastic search. so shall we check the data again?