一个项目内需要用到时间范围查询,例如t1=2018-01-01 到 t2=2018-02-02.小编希望得到的sql语句是
sql = "........where t=> t1 and t<=t2" .
这里允许t1或者t2为空,或者二个都为空. 允许只输入一个时间或者二个或者一个时间也没有输入
原生的sql构建通过if判断就可以实现
if(t1<>''){
$whr .= " and t>=t1";
}
if(t2<>''){
$whr .=" and t<=t2";
}
在thinkphp内也使用这样的if判断会发现当二个都输入时第二个$whr['t'] = array('elt',t2)会复盖第一个条件...
看来只能再多写一次把当t1 t2都不为空的条件写一个独立的判断.