0
我有以下查詢:獲取查詢結果的日期範圍
$input_datestart = date("Y-m-d", strtotime($data["date_start"]));
$input_dateend = date("Y-m-d", strtotime($data["date_end"]));
//Calculate the recurrent dates
$query = $query->join('events_dates_recurrent', 'events.id', '=', 'events_dates_recurrent.event_id')
->whereRaw("ABS(DATEDIFF('" . $input_datestart . "', CAST(events_dates_recurrent.start_date AS DATE)) % events_dates_recurrent.repeat_interval) = 0");
對於單一的一天,我現在得到期望的結果,這是從我的數據庫復發事件對於給定的起始日期。
但是,當給出日期範圍(即開始和結束日期)時,我不確定如何在避免循環的同時在單個查詢中獲取所有結果,並考慮到仍會獲取循環事件。
有什麼建議嗎?
編輯:表結構很簡單:
表events_dates_recurrent
:
event_id | start_date | end_date | repeat_interval
如果事件ID被鏈接到表events
與內連接。
我需要檢索給定日期範圍內的所有經常性事件。
現在可以忽略'events_dates_recurrent'表中的end_date,這可能稍後可能會用於此目的,但對於此查詢不是嚴格要求的。
你能編輯你的問題,並添加表結構和預期的結果嗎? – lukasgeiter
@lukasgeiter更新結構。 – Trace
你是經典的經常性記錄問題。我目前無法回答,也許其他人會回答。另請考慮[this](http://stackoverflow.com/a/14660169/1903366) – lukasgeiter