期間の重なるレコードを取得するSQL

たまにある期間の重なるレコードを取得するやつ

where
   ( from_column >= :from and from_column <= :to )
   or
   ( from_column < :from and to_column >= :from )

「:toが与えられない場合は無期限」 とかは力技で

if( :to == "" ){
    :to = 9999-12/31
}

とかするのが楽。

あとは仕様によって適宜追加する
例えばこんなの

 or ( to_column is null and from_column <= :to )