0
我有這段代碼來選擇所有記錄的日期在$ date_to_search_string 這只是一個變量與逗號分隔的字符串。Propel結合IN和LIKE查詢
客戶想在現在我的查詢應該看起來像 IN('03/1/2014%','03/2/2014%'等等)的日期添加時間 我該如何實現這一點用propel進行查詢?(新手推進用戶)。
我總是可以做這樣的事情,雖然:
WHERE initial_interview_date LIKE '03/1/2014%' OR
initial_final_date LIKE '03/12014%' OR
initial_interview_date LIKE '03/2/2014%' OR
initial_final_date LIKE '03/2/2014%' OR
etc..
但可能是有點矯枉過正這樣做我想要做的東西, 也許有解決這個事情其他方式。
代碼:
$date_to_search_string = implode(",",$date_to_search);
/* $date_to_search_string:
string ''03/1/2014','03/2/2014','03/3/2014','03/4/2014','03/5/2014'...
***/
$events = ApplicantDetailsQuery::create()
->where("initial_interview_date IN (".$date_to_search_string.") OR final_interview_date IN (".$date_to_search_string.")")
->find();
$events_ii = array();
$events_fi = array();
foreach($events as $event) {
$events_ii[$event->getInitialInterviewDate()][] = $event;
$events_fi[$event->getFinalInterviewDate()][] = $event;
}
我不喜歡你如何提議'LIKE'上的日期爲字符串。日期列是日期還是字符串?難道你不能將'initial_interview_date'和'final_interview_date'轉換爲比較中使用的日期嗎? – Turophile
客戶端使用datetimepicker添加日期和記錄保存爲字符串,我認爲你是建議我將它轉換爲時間戳/日期並保存它? – Viscocent
是的,如果數據庫中有一個日期(現在是日期+時間)的字符串,則將該列轉換爲WHERE子句中的日期。這將會消失,因此IN部分將與以前一樣工作。 – Turophile