1.数据库日期转格式
DATE_FORMAT(measuring_time, '%Y-%m-%d') AS measuring_time,
2.日期大于小于
<if test="beginDate != null and beginDate != ''"> AND DATE_FORMAT(measuring_time, '%Y-%m-%d') >= #{beginDate} </if> <if test="endDate != null and endDate != ''"> AND DATE_FORMAT(measuring_time, '%Y-%m-%d') <= #{endDate} </if>
转义字符串:
<if test="startTime != null and startTime != ''">
AND u.create_time >= #{startTime}
</if>
<if test="endTime != null and endTime != ''">
AND u.create_time <= #{endTime}
3.foreach写法
<if test="healthStatuses != null"> AND ha.health_status IN <foreach collection="healthStatuses" item="item" index="index" open="(" close=")" separator=","> #{item} </foreach> </if>
4.模糊搜索
<if test="teamName != null and teamName != '' "> AND team_name LIKE CONCAT('%', #{teamName} ,'%') </if>
5.case when
简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END
6.find_in_set
<if test="chargeItemName != null and chargeItemName != ''"> and find_in_set(charge_item_name,#{chargeItemName}) </if>
charge_item_name #{chargeItemName} 用逗号拼接的放在后面 字符串没有逗号的放在前面
1 获取数据库中的有数据的日期
SELECT
DISTINCT DATE_FORMAT(create_time, '%Y-%m-%d')
FROM
t_health
GROUP BY
create_time
ORDER BY
create_time DESC
LIMIT 50