0

我是 mysql 的新手,我遇到了一个难题。

我有一张桌子存储一些房间预订信息

room_id
booking_start_time
booking_end_time

例如。

room_id  | booking_start_time | booking_end_time<br>
1        | 2012-01-01 09:00   | 2012-01-01 11:00
1        | 2012-01-02 09:00   | 2012-01-02 10:00
1        | 2012-01-03 08:00   | 2012-01-03 10:00
2        | 2012-01-01 08:00   | 2012-01-01 10:00
3        | 2012-01-01 08:00   | 2012-01-01 09:00

我必须做一个报告来提取一个月内房间的利用率,即在特定时间段内使用的小时数,格式如下

room 1| room 2
09:00 -10:00|
10:00 -11:00|

我的问题是,如果预订时间跨越多个小时,例如从 9:00 -11:00,那么如何计算记录,但我必须在 09:00 到 10:00 期间标记 1 小时,然后再标记 1 10:00 至 11:00 期间的小时。

我真的很挣扎。

非常感谢您的回复。

非常感谢。

4

1 回答 1

0

看看MySQL 日期时间函数。特别是,TIME_DIFF()

在你的情况下,TIME_DIFF()为你的 *booking_time* 列做一个。结合GROUP BYfor room_id,您可以SUM()在一个月内轻松地为每个房间提供这些。

我承认这个答案并不全面。我鼓励你学习这些功能。

于 2012-05-24T15:14:10.970 回答