my @date1 = ('2013-08-01 00:00:00.000','2013-08-02 00:00:00.000'); #### my @intervals = ( ['2013-08-01 00:00:00.000', '2013-08-02 00:00:00.000'], ['2013-08-02 00:00:00.000', '2013-08-03 00:00:00.000'], ); ... foreach my $interval (@intervals) { $sth->execute(@$interval); ... } #### WHERE master.dbo.fn_sqlvarbasetostr(AuditChrt_TimeStamp) >= ? AND master.dbo.fn_sqlvarbasetostr(AuditChrt_TimeStamp) < ?