mybatis date類型比較


如果數據庫是時間類型而且你傳的值也是時間類型,可以直接比較。

第一種方法:    把轉義字符">"和"<"替換掉.

<if test="startTime != null ">
    AND order_date &gt;= #{startTime,jdbcType=DATE} 
</if>
<if test="endTime != nul ">
    AND order_date &lt;= #{endTime,jdbcType=DATE} 
</if>

 

第二種方法:     使用<![CDATA[ ]]>符號進行說明,將此類符號不進行解析 

<if test="startTime != null ">
    AND <![CDATA[ order_date >= #{startTime,jdbcType=DATE}  ]]>
</if>
<if test="endTime != null ">
    AND <![CDATA[ order_date <= #{endTime,jdbcType=DATE}  ]]> 
</if>

注意date類型不用判斷="",要不然會報錯的。

並且jdbcType=DATE,參數中的date格式為yyyy-mm-dd,不帶時分秒,查詢到某天這種。

如果需要精確到時分秒,需要將jdbcType設置成TIMESTAMP。

參考:https://blog.csdn.net/u010526028/article/details/74315775/

 

jdbcType=DATE的時候 只能和2018-09-06比較。

 

有格式的日期比較,可以使用date_format方法

<if test="creationDate != null">
                <![CDATA[ AND DATE_FORMAT(a.creation_date, '%Y-%m-%d') = DATE_FORMAT(#{creationDate,jdbcType=DATE},'%Y-%m-%d')]]>
            </if>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM