1つの方法は、「カレンダーテーブル」を使用することです。または、1日だけに興味がある場合は、「時計テーブル」を使用します。以下は、(大まかに)それをどのように使用するかを示しています。
SELECT clock.time AS available
FROM clock
LEFT JOIN bookings ON clock.time BETWEEN bookings.from AND bookings.to
AND bookings.date = '2013-01-01'
WHERE bookings.id IS NULL
http://www.brianshowalter.com/calendar_tables MySQLでカレンダーを作成する方法の例です