spring mybatis where條件中日期問題

轉自: https://blog.csdn.net/yongjiutongmi53151/article/details/87367346

Mybatis映射文件<!CDATA[[]]> 轉義問題https://www.cnblogs.com/coisini/p/9700074.html

Mybatis映射文件<!CDATA[[]]> 轉義問題: https://www.cnblogs.com/coisini/p/9700074.html

mybatis3 date 的處理:https://blog.csdn.net/justlpf/article/details/82870339

mysql str_to_date 字符串轉換爲日期: https://www.cnblogs.com/feiwenstyle/p/9531571.html

 

 

 

第一個是正確的寫法,第二個在查詢字段前加上 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>

發佈了6 篇原創文章 · 獲贊 46 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章