Re: [SQL ] mysql二個時段日期的的判斷?
※ 引述《lbsjack (^^)》之銘言:
: 我剛測試了一下,已預約時段為08:00~10:00
: select * from events where
: (publish_up >= '2009-07-24 6:00:00' and publish_up <= '2009-07-24 7:00:00') or
: (publish_down >= '2009-07-24 6:00:00' and publish_down <= '2009-07-24
: 7:00:00')
: ↑輸入06:00~07:00 找不到 ,所以可以新增(正確)
: select * from events where
: (publish_up >= '2009-07-24 9:00:00' and publish_up <= '2009-07-24 9:10:00') or
: (publish_down >= '2009-07-24 9:00:00' and publish_down <= '2009-07-24
: 9:10:00')
: ↑輸入09:00~09:10,找不到,所以可以新增(錯誤,因為08~10都被預約了)
: select * from events where
: (publish_up >= '2009-07-24 10:00:00' and publish_up <= '2009-07-24 10:00:00')
^^?
: or
: (publish_down >= '2009-07-24 10:00:00' and publish_down <= '2009-07-24
: 12:00:00')
: ↑褕入10:00~12:00,找的到,不能新增(錯誤,因為10點視為在10~12,可以新增)
: 以上這樣子,不知道sql要如何修正,麻煩站上各位,謝謝。
看標題以為是SQL SERVER,我要表達的是>跟<
沒注意到是mysql,真是誤會
根據你提的例子,在追加一個條件
select * from events where
(
(publish_up< 't1' and publish_down > 't2') or
(publish_up< 't1' and publish_down > 't2')
)or(
(publish_up> 't1' and publish_up < 't2') or
(publish_down> 't1' and publish_down < 't2')
)
這裡考慮到兩個條件,
一個是錯誤的時段在預約的時段內,例如
例如錯誤是9~9:10,預約是8~10
一個是預約的時段在錯誤的時段內
例如錯誤是6~12,預約是10~12
因為手中沒類似的資料庫,你在試試看吧
剩下如有不足的部分你該自己思考了吧..?
※ 編輯: arrack 來自: 61.56.213.47 (07/21 08:51)
※ 編輯: arrack 來自: 61.56.213.47 (07/21 08:51)
※ 編輯: arrack 來自: 61.56.213.47 (07/21 08:52)
推
07/21 22:29, , 1F
07/21 22:29, 1F
討論串 (同標題文章)