Really easy you just have to dig into IB API. In R if you run the code;
require(IBrokers)
args(reqHistoricalData)
You will see that theres an argument called "duration". According to documentation
here;
The duration string must be of the form ‘n S’ where the last character may be any one of ‘S’ (seconds), ‘D’ (days), ‘W’ (weeks), ‘M’ (months), and ‘Y’ (year). At present the limit for years is 1.
* Note that the argument has got to be a character string so you need the "" around the value.
So for example using duration = "2 D", will tell the function to pull only the last 2 days of data off rather than all 90 days in your case.
You could use the reqHistoricalData inside another function, but get R to extract the last date from your DB and compute days from current date to date of last entry in DB, then create a variable for the duration argument of this value which would then only pull required data.
I decided to post this here so that it may be of help to others in similar situation.