I need to process data based on the following query.
As you access two months of a table partitioned by day why don't you simply process all the rows for a single day = 59 batches?
WHERE date_col BETWEEN 1100101 AND 1100228
ROW_NUMBER() OVER (ORDER BY id) MOD 1000000 = 999999
ORDER BY id;