sql >> データベース >  >> RDS >> Mysql

選択した日付が2つの日付の間にある場合、クエリから結果を取得するにはどうすればよいですか?

    User::whereHas('availabilities', function ($q) use ($dt) {
        $q->where('unavailable_start_date', '<=', $dt)
          ->where('unavailable_end_date', '>', $dt);
    }, '=', 0)->get();
    

    ですから、ある意味でこれを逆転させています。 whereHas内にクエリを設定して、この範囲内の可用性、非可用性を見つけます。したがって、使用できないすべてのレコードを(ある意味で)クエリしています。次に、whereHas('=', 0)に対する他の引数を使用して、この基準に一致する関係を持たないユーザーのみを取得します。 。

    したがって、この時間枠に該当するこの関係を持つユーザーは、可用性レコードの数に関係なく返されません。それらのいずれかが適格である場合、それらはフィルターを通過しません。



    1. CakePHP3の時間列に日付が追加されます

    2. MySQLでユーザー設定変数を比較する方法は?

    3. 1つの列のみで区別-最初の重複行のみを表示

    4. デフォルト値で複数のテーブルをピボットする