このようなものをお探しですか?
select *
from MY_TABLE
where (id, name) in ((1,'new'), (2, 'old')) and
date between effectiveDate and termDate
これにより、リスト内のペアが検索され、ある範囲の日付の間の日付がチェックされます。
編集:
これを複数の句に分割したいと思います。値のセットごとに1つです。
where (id = 1 and name = 'new' and date between eff1 and term1) or
(id = 2 and name = 'old' and date between eff2 and term2) or
. . .