我們正在使用Yii框架並創建了一個搜索表單包括以下的DatePicker widge:MySQL的DateDiff在Where子句中?
<?php echo $form->labelEx($model, 'availability_start_date');?>
<?php
Yii::import('zii.widgets.jui.CJuiDatePicker');
$this->widget('zii.widgets.jui.CJuiDatePicker', array(
'name'=>'stattDate',
'options'=>array(
'showAnim'=>'fold',
),
'htmlOptions'=>array(
'style'=>'height:20px;'
)
));
?>
這個小部件需要被用於搜索誰擁有availability_start_date從指定的值+/- 2天的使用者在上面的小部件中。
我們UserController中有如下加入邏輯:
if ($search_frm['availability_start_date']){
$join .= ' LEFT JOIN user_availability_start_date usd on u.id = usd.id';
$where .= 'AND usd.availability_start_date >= '.$search_frm
['availability_start_date'];
}
目前在邏輯WHERE子句只是要求進行匹配,其中availability_start_date大於或等於該控件的值。
如何修改上述WHERE子句以選擇widget的值爲+/- 2天而不是availability_start_date值的那些記錄?
更新:我已經修改了where子句如下:
if ($search_frm['availability_start_date']){
$join .= ' LEFT JOIN user_availability_start_date usd on u.id = usd.id';
$where .= ' AND usd.availability_start_date >= DATE_ADD('.$search_frm.',
INTERVAL -2 DAY)
AND usd.availability_start_date <= DATE_ADD(' .$search_frm.', INTERVAL 2 DAY)';
}
不幸的是,當我測試的邏輯,將返回的記錄不符合這一標準。在表單或頁面上不會出現錯誤。
+1的風采吧! – Matt 2012-08-02 18:19:57