声明:classType------0:今日,1:周,2:月,3:自定义,4:最近七天
<choose>
<when test="classType == 1">
AND DATE_FORMAT(s.create_time,'%Y%u') = DATE_FORMAT(CURDATE( ),'%Y%u')
</when>
<when test="classType == 2">
AND DATE_FORMAT(s.create_time,'%Y%m') = DATE_FORMAT(CURDATE( ),'%Y%m')
</when>
<when test="classType == 3">
<choose>
<when test="beginTime!=null and beginTime!='' and endTime == '' ">
AND Date(s.create_time) between #{beginTime,jdbcType=VARCHAR} and CURDATE()
</when>
<when test="endTime!=null and endTime!='' and beginTime == '' ">
AND Date(s.create_time) <= #{endTime,jdbcType=VARCHAR}
</when>
<when test="beginTime!=null and beginTime!='' and endTime!=null and endTime!= '' ">
AND Date(s.create_time) between #{beginTime,jdbcType=VARCHAR} and #{endTime,jdbcType=VARCHAR}
</when>
<otherwise>
AND Date(s.create_time) = CURDATE()
</otherwise>
</choose>
</when>
<when test="classType == 4">
AND date(s.create_time) between date_sub(curdate(), INTERVAL 6 DAY) and curdate()
</when>
<otherwise>
AND Date(s.create_time) = CURDATE()
</otherwise>
</choose>

本文介绍了一种基于SQL的日期筛选逻辑配置方案,通过不同的classType参数实现今日、本周、本月、自定义时间段及最近七天的数据查询。针对自定义查询提供了灵活的开始时间和结束时间设定。
1717

被折叠的 条评论
为什么被折叠?



