作者arrack (Arrack Tseng)
看板Database
标题Re: [SQL ] mysql二个时段日期的的判断?
时间Tue Jul 21 08:36:33 2009
※ 引述《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)
1F:推 lbsjack:谢谢arrack的教学,非常感谢。 07/21 22:29