spring mybatis where条件中日期问题

 

 

第一个是正确的写法,第二个在查询字段前加上 DATE_FORMAT(checkin_time, '%Y-%m'),

就会出现问题

Closing non transactional SqlSession

 

mybatis SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@7d450bc0] was not registered for synchronization because synchronization is not active
<select id="selectCRToolbarList" resultMap="BaseResultMap" parameterType="hashmap">
		SELECT a.id,a.emp_id,b.emp_no as empNo,b.emp_name as empName,a.checkin_time,MAX(a.checkin_time) AS timeOut,MIN(a.checkin_time) AS timeIn,
			a.checkin_category,a.audit_by,a.audit_time,a.is_enable
		FROM
			t_checkin_record a
		LEFT JOIN
			t_employee b
		ON
			a.emp_id=b.id
		<where>
			<if test="true">a.is_enable=1 AND emp_id=#{id} AND DATE_FORMAT(checkin_time, '%Y-%m')= DATE_FORMAT(CURRENT_DATE(), '%Y-%m')</if>
			<if test="startTime!=null">
				<![CDATA[AND checkin_time>=STR_TO_DATE(#{startTime},'%Y-%m-%d')]]>
			</if>
			<if test="endTime">
				<![CDATA[AND checkin_time<=STR_TO_DATE(#{endTime},'%Y-%m-%d')]]>
			</if>
		</where>			
		GROUP BY
			a.emp_id,DATE_FORMAT(a.checkin_time, '%Y-%m-%d')
	</select>
<select id="selectCRToolbarList" resultMap="BaseResultMap" parameterType="hashmap">
		SELECT a.id,a.emp_id,b.emp_no as empNo,b.emp_name as empName,a.checkin_time,MAX(a.checkin_time) AS timeOut,MIN(a.checkin_time) AS timeIn,
			a.checkin_category,a.audit_by,a.audit_time,a.is_enable
		FROM
			t_checkin_record a
		LEFT JOIN
			t_employee b
		ON
			a.emp_id=b.id
		<where>
			<if test="true">a.is_enable=1 AND emp_id=#{id} AND DATE_FORMAT(checkin_time, '%Y-%m')= DATE_FORMAT(CURRENT_DATE(), '%Y-%m')</if>
			<if test="startTime!=null">
				<![CDATA[AND DATE_FORMAT(checkin_time, '%Y-%m')>=STR_TO_DATE(#{startTime},'%Y-%m-%d')]]>
			</if>
			<if test="endTime">
				<![CDATA[AND DATE_FORMAT(checkin_time, '%Y-%m')<=STR_TO_DATE(#{endTime},'%Y-%m-%d')]]>
			</if>
		</where>			
		GROUP BY
			a.emp_id,DATE_FORMAT(a.checkin_time, '%Y-%m-%d')
	</select>

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值