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

そして、特定の期間に使用された時間数である 1 か月の部屋の使用率を抽出するレポートを作成する必要があり、形式は次のようになります。

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 の 1 時間。

私はそれについて本当に苦労しています。

あなたの返信は本当に感謝しています。

どうもありがとう。

4

1 に答える 1

0

MySQL Date Time Functionsを見てください。特に、TIME_DIFF()

あなたの場合、TIME_DIFF()*booking_time* 列に対して a を実行します。GROUP BYforと組み合わせると、これらを 1 か月の部屋ごとroom_idに簡単に作成できます。SUM()

この回答は包括的ではないことを認識しています。これらの機能を学ぶことをお勧めします。

于 2012-05-24T15:14:10.970 に答える