SELECT * FROM sc_user
WHERE (CASE WHEN #{开始时间} IS NOT NULL AND "#{开始时间}"!="" THEN (开始时间的字段>="#{开始时间}") ELSE (1=1) END )
AND (CASE WHEN #{结束时间} IS NOT NULL AND "#{结束时间}"!="" THEN (结束时间的字段<="#{结束时间}") ELSE (1=1) END )
如果数据库是dateTime类型的(带有时分秒的)
前台是date类型 不带时分秒的 可以用DATE(visitor_time) 将数据库的进行转化 去掉时分秒 变为java.sql.Date 类型后进行 时间比较
例如
@Select("Select * from c_visit where "+ "(case when #{visitorName} is not null and #{visitorName}!= '' then (visitor_name like '%{seniorName}%') else (1=1) end) and "+" (case when #{cVistBeginTime} is not null and #{cVistBeginTime}!= '' then (DATE(visitor_time) >= #{cVistBeginTime}) else (1=1) end ) and (case when #{cVistEndTime} is not null and #{cVistEndTime} != '' then (#{cVistEndTime} <= DATE(departure_time) ) else (1=1) end ) and delete_state = 1")
List<Map<String, Object>> queryCVistInfo(CVist cVist, Date cVistBeginTime, Date cVistEndTime);
网友评论