時間帯検索の重複チェック

名称 | 開始時間 | 終了時間
aaa | 2008-11-15 05:00 | 2008-11-15 07:00

とあった時に重複してる時間帯を検索する方法

select 名称 from table
where (to_timestamp(開始時間,'yyyy-mm-dd hh24:mi:ss')
, to_timestamp(終了時間,'yyyy-mm-dd hh24:mi:ss'))
overlaps(timestamp '入力値from', timestamp '入力値to')


結果は下記の通り
開始時間 | 終了時間
03:30 | 04:30 ← × 重複している区間がないので、aaaは引っ掛からない。
04:30 | 05:30 ← ○ 05:00~05:30で重複しているので、aaaが引っ掛かる。
05:30 | 06:30 ← ○ 05:30~06:30で重複しているので、aaaが引っ掛かる。
06:30 | 07:30 ← ○ 06:30~07:00で重複しているので、aaaが引っ掛かる。
04:30 | 07:30 ← ○ 05:00~07:00で重複しているので、aaaが引っ掛かる。
07:30 | 08:30 ← × 重複している区間がないので、aaaは引っ掛からない。

※日付は同じ日として
スポンサーサイト

トラックバック

コメント

コメントを残す

Secret


プロフィール

U2K

Author:U2K
いろいろプログラムに関しての覚え書きをちょくちょくと書いていきます。

オススメ










オススメ

忍者AdMax

u2k on Twitter

最近の記事