$where['id']=230;//id为230
$where['date1']=array('lt',date('Y-m-d'));//date1小于今天
$where['date2']=array('lt',date('Y-m-d'));//date2小于今天
$data['date2']=array('exp',"DATE_ADD(date1,INTERVAL CEIL(PERIOD_DIFF(DATE_FORMAT(NOW(),'%Y%m'),DATE_FORMAT(date1,'%Y%m'))/6)*6 MONTH)");//date2转换为加上date1距今相差x+1个半年的日期。SQL被解析为:UPDATE `thinkphp_test` SET `date2`=DATE_ADD(date1,INTERVAL CEIL(PERIOD_DIFF(DATE_FORMAT(NOW(),\'%Y%m\'),DATE_FORMAT(date1,\'%Y%m\'))/6)*6 MONTH) WHERE ( `id` = 230 ) AND ( `date1` < '2013-10-01' ) AND ( `date2` < '2013-10-01' )即\'%Y%m\'被加了转义符\,而在select时则不会。如何解决?暂时取消转义符\或过滤。 最佳答案