Time fields is often not the best choice to use as a raising column as you might not catch all events in a very busy db. What is the time requirements for your use case? if indexing data with some degree of delay is not a big issue, you can try to build your sql query looking into the last complete hour (e.g. 1 PM till 2 PM) and run a db connect batch input a bit after the upper boudary (e.g. 2:30 PM). This way you're able to look into a "fixed" time interval and index it into splunk. The only risk of losing events like this is if you add events to the DB with an older value for time field.
If 1h is to much you can also in theory shorten the interval to every 10min and use the same logic to the indexing time (5min after the upper boundary) and still use batch input but I would says might be more risky to something to miss.
------------ Hope I was able to help you. If so, some karma would be appreciated.