Một cách sẽ là sử dụng 'bảng lịch', hoặc nếu bạn chỉ quan tâm đến một ngày thì 'bảng đồng hồ' sẽ làm được. Phần sau minh họa (đại khái) cách bạn sử dụng nó.
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.brianhowalter.com/calendar_tables là một ví dụ về cách tạo lịch trong MySQL