匹配给定日期范围的星期几

时间:2017-03-15 09:35:14

标签: mysql datetime

我正在研究太空预订系统,并试图找出该空间是否适用于给定的日期范围。所以我有2张桌子 -

space_master
    id    space_address   start_time    end_time

space_availability
    space_id    days_of_week

注意 -

(a)start_time和end_time是MYSQL中的DATETIME字段

(b)days_of_week是星期日由1表示的数字,依此类推

(c)多天可以使用一个空格(以下示例)

space_master    
id  space_address   start_time                  end_time

1   Florida         2012-03-18 10:21:00         2012-03-29 4:21:00
2   London          2012-04-21 09:00:00         2012-06-18 10:00:00

space_availability
space_id    days_of_week
1           1
1           2
2           4
2           5
2           6

这意味着第一个空格(id为1)可在2012-03-18 10:21:00和2012-03-29 4:21:00之间使用,但仅限于周日和周一。现在我正在尝试编写一个函数,它将booking_start_time和booking_end_time(MYSQL中的所有DATETIME)作为输入,然后扫描可用的空间表并返回可用的预订。像这样的东西 -

getBooking(2012-03-19 10:21:00,2012-03-19 15:21:00) - 返回id为1的空格(截至2012年3月19日为星期一,因此可用)

getBooking(2012-03-19 10:21:00,2012-03-20 15:21:00) - 自3月20日起没有返回任何空间不可用的星期二。

知道怎么做吗?我是第一次尝试在一个查询中执行此操作。但这甚至可能吗?

编辑:sqlfiddle链接如下 -

http://sqlfiddle.com/#!9/8a6e1a

0 个答案:

没有答案