[pgsql-jp: 25994] Re: 時間帯検索の重複チェック

Hiroshi Ishiura issy777 @ entrance-e.com
2002年 5月 16日 (木) 21:58:49 JST


石浦です。

> 中川@東京武蔵野です
> 
> その名の通りoverlapsという関数がありますよ。
> 
> select
>  overlaps(
>  '2002/5/16 10:00'::datetime, '2002/5/16 11:00'::datetime,
>  '2002/5/16 10:30'::datetime, '2002/5/16 11:00'::datetime ) ;
> 
> などと使います。

どうもありがとうございます。こんな特殊なものがあったとはきづきませんでし
た。シーラカンス本を見直すとちゃんとのってますね。
これで実装してみました。

select * from reserve where date='$date' and (start_time,end_time)
overlaps ('$start_time'::time, '$end_time'::time)

これで実装してみたところ見事にできました。だいぶスマートなSQL文になり感
動です。
今回は日をまたがる場合はないので、dateは別にしましたが、日をまたがった場
合は、例であげてもらっているようにdatetimeで指定する形でやるとできるよう
ですね。これは今後いろいろと使えそうです。

ありがとうございました。
> 
> 以上
> 
> --
>      Nakagawa, Yasuharu  <yasuharu.nakagawa @ jp.yokogawa.com>
>      中川 康晴      @  横河電機(株)コンポ事業部室 (PHS:25842)
>      Key fingerprint = 4ABF 08D3 BF9B 1CC5 AB0C  A30F 6427 1ADB 5C8D 4F14





pgsql-jp メーリングリストの案内