E-housma Mardini:
私は2020年4月10日で、予約2020年3月1日に開始と終了を持っ例えば、予約のための2つの日付を持っています。
私はこの部屋には4月に予約していた日数を知るために、選択クエリを作成する場合ので、私は10日のカウントを取得したいです
MySQLでそれを行うには、とにかくそこにあります。
SELECT from_date , to_date
FROM reservations
WHERE room_id = ?
AND from_date >= "2020-04-01" AND to_date >= "2020-04-30"
ゴードン・リノフ:
あなたは使用することができますdatediff() and
()以上and
、最大の() `。私はあなたが欲しいロジックがあると思います:
SELECT DATEDIFF(LEAST(to_date, '2020-04-30'),
GREATEST(from_date, '2020-04-01')
) + 1
FROM reservations
WHERE room_id = ? AND
to_date >= '2020-04-01' AND
from_date <= '2020-04-30';
日付ロジックことに注意してくださいWHERE
節が変更されました。これは、2つの期間が重複するかどうかを決定するための正しい論理です。第二の開始後の最初の両端。第二の端の前に最初に開始。