ドゥアイネットのプログラマー、湯川が開発日記を綴ります。

CALENDAR
S M T W T F S
1234567
891011121314
15161718192021
22232425262728
293031    
<< December 2019 >>
ARCHIVES
CATEGORIES
<< 誰にでも伝わる言葉で話す | main | curlで日付計算 >>
指定した時間が含まれるか
既に登録されているデータと時間が重複していないか?
開発でよく書く条件です。

開始・終了が一致する時間だけでなく、
登録するデータと1時間でも重なっていたら、重複とするときは
以下のように条件を書けば、重複の有無を確認できます。

14:00〜20:00と時間が重複するデータを抽出する場合の例です。

select * from 対象テーブル
where (starttime = '14:00' and endtime ='20:00')
or (starttime < '14:00' and endtime > '14:00')
or (starttime < '20:00' and endtime > '20:00')
or ('14:00' < starttime and '20:00' > starttime)
or ('14:00' < endtime and '20:00' >endtime );

何度か開発で作成したことがある条件なのですが、
必要になるたびに一から考えているような気がするので
ここにメモしておきます。
| Mysql | 18:23 | comments(0) | - |
コメント
コメントする