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

日付範囲のクエリ結果を取得する

    私はこのソリューションに特に満足していませんが、本来の機能を果たします。基本的には、入力された日付間隔をループして動的クエリ文字列を作成します。
    私のアプリケーションは、常に要求された日付/時刻を制限します。 @maximum 1か月までの間隔なので、クエリ文字列は最大文字列制限を超えてはなりません。
    パフォーマンスについては100%ではありませんが、それがどのように機能するかを見ていきます。

    //Calculate the recurrent dates 
    $query = $query->join('events_dates_recurrent', 'events.id', '=', 'events_dates_recurrent.event_id')
        ->where(function($join) use ($input_date_start, $input_date_end) { 
            //Create a dynamic query to get all recurrent dates within the input time interval 
            $query_string = "ABS(DATEDIFF('" . $input_date_start . "', CAST(events_dates_recurrent.start_date AS DATE)) % events_dates_recurrent.repeat_interval) = 0"; 
            $temp_date_start = $input_date_start; 
    
            while(strtotime($temp_date_start) <= strtotime($input_date_end)){ 
                $temp_date_start = date('Y-m-d',strtotime($temp_date_start . " +1 day")); 
                //Create a raw query string 
                $query_string = $query_string . " OR ABS(DATEDIFF('" . $temp_date_start . "', CAST(events_dates_recurrent.start_date AS DATE)) % events_dates_recurrent.repeat_interval) = 0"; 
            } 
            $join->whereRaw($query_string); 
        }); 
    



    1. Eclipseがデータ型テキストのデフォルトのマッピングタイプとしてオブジェクトを提案するのはなぜですか?

    2. JulianDay()関数がSQLiteでどのように機能するか

    3. MySQL:リストにないアイテムを選択します

    4. Kafkaは、AWSMSKを使用してAuroraからレコードを送信するためのセットアップを接続します