作者lbsjack (^^)
看板Database
标题Re: [SQL ] mysql二个时段日期的的判断?
时间Mon Jul 20 21:06:49 2009
※ 引述《arrack (Arrack Tseng)》之铭言:
: ※ 引述《lbsjack (^^)》之铭言:
: : 大家好:
: : 例如:
: : 有关预约时段的问题(mysql 5)
: : 假设有个人预约的a时段是09:00~11:00
: : 但很不巧的今天维修是b时段10:30~11:30
: : 那在sql中二个区间的日期,要如何判断是否有交集呢?
: : --
: : events的TABLE中有publish_up与publish_down的维修时间,
: : 然後会输入一段开始时间与结束时间与资料库中的比对,这样的SQL要怎麽写?谢谢
: 在新增的时候拦截
: select * from events where
: (publist_up between '09:00' and '11:00') or
: (publist_down between '09:00' and '11:00')
: 如果笔数大於0 就是有交集
: 还是你要问的是另外一种,两个表格比对的?
我刚测试了一下,已预约时段为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要如何修正,麻烦站上各位,谢谢。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.117.236.157
※ 编辑: lbsjack 来自: 122.117.236.157 (07/20 21:07)