mybatis plus時(shí)間判斷問題
mybatis plus時(shí)間判斷
<where> <if test="startTime != null"> and eventtimestamp >= #{startTime,jdbcType=TIMESTAMP} </if> <if test="endTime != null"> and eventtimestamp < #{endTime} ,INTERVAL 1 DAY) </if> </where>
方法一:使用xml 原生轉(zhuǎn)義的方式進(jìn)行轉(zhuǎn)義#
- 字符名稱 sql符號(hào) 轉(zhuǎn)義字符
- 大于號(hào) > >
- 小于號(hào) < <
- 不等于 <> <>
- 大于等于號(hào) >= >=
- 小于等于號(hào) <= <=
- 與 & &
- 單引號(hào) ' '
- 雙引號(hào) " "
<if test="startTime != null and endTime != null"> and change_time between #{startTime,jdbcType=TIMESTAMP} and #{endTime,jdbcType=TIMESTAMP} </if>
mybatis plus如何進(jìn)行時(shí)間日期的比較
獲取數(shù)據(jù)庫中跟當(dāng)前日期相等的記錄時(shí),還是調(diào)用eq方法,所以實(shí)體類包括數(shù)據(jù)庫中的類型是Date,而不是DateTime,否則只能獲取相同時(shí)刻的數(shù)據(jù)。
pulbic void main(){ LocalDate now = LocalDate.now(); LambdaQueryWrapper<Ebbinghaus> queryWrapper = new LambdaQueryWrapper(); queryWrapper.eq(Ebbinghasu.getCreateTime,now); ebbinghuas.list(queryWrapper); }
Mybatis-Plus的時(shí)間比較是基于數(shù)據(jù)庫的函數(shù)進(jìn)行的,而不是字符串的比較。在Mybatis-Plus中,可以使用Wrapper對(duì)象的ge、gt、le、lt
方法來進(jìn)行時(shí)間的比較。
這些方法會(huì)根據(jù)數(shù)據(jù)庫的不同,生成相應(yīng)的SQL語句來實(shí)現(xiàn)時(shí)間的比較操作。所以,不需要將時(shí)間轉(zhuǎn)換為字符串進(jìn)行比較。
如果要進(jìn)行天數(shù)的比較最好還是通過LocalDate做為數(shù)據(jù)的類型,而不是LocalDateTime,否則比較的也只是大于當(dāng)前時(shí)刻,大于等于當(dāng)前時(shí)刻。
如果對(duì)數(shù)據(jù)的時(shí)刻值有操作需求,可以進(jìn)行以下設(shè)置:
@JsonFormat(pattern = "yyyy-MM-dd") private LocalDateTime createTime;
數(shù)據(jù)庫中對(duì)應(yīng)的字段類型設(shè)置為date,而不是datetime,這樣即可以比較天數(shù),又可以在時(shí)刻上有更為豐富的操作。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
利用Spring Cloud Zuul實(shí)現(xiàn)動(dòng)態(tài)路由示例代碼
Spring Cloud Zuul路由是微服務(wù)架構(gòu)的不可或缺的一部分,提供動(dòng)態(tài)路由,監(jiān)控,彈性,安全等的邊緣服務(wù)。下面這篇文章主要給大家介紹了關(guān)于利用Spring Cloud Zuul實(shí)現(xiàn)動(dòng)態(tài)路由的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。2017-09-09IDEA創(chuàng)建springboot依賴下載很慢的解決方法
maven會(huì)使用遠(yuǎn)程倉庫來加載依賴,是一個(gè)國外的網(wǎng)站,所以會(huì)很慢,本文主要介紹了IDEA創(chuàng)建springboot依賴下載很慢的解決方法,具有一定的參考價(jià)值,感興趣的可以了解一下2023-12-12java8 實(shí)現(xiàn)map以value值排序操作
這篇文章主要介紹了java8 實(shí)現(xiàn)map以value值排序操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-12-12Java中g(shù)etParameterTypes()方法的使用與原理分析
本文詳細(xì)介紹了Java中g(shù)etParameterTypes()方法的使用方式、工作原理及其在實(shí)際開發(fā)中的應(yīng)用,該方法用于獲取方法的參數(shù)類型列表,并通過反射機(jī)制在運(yùn)行時(shí)動(dòng)態(tài)地獲取這些信息,感興趣的朋友跟隨小編一起看看吧2025-01-01Java實(shí)現(xiàn)的可選擇及拖拽圖片的面板功能【基于swing組件】
這篇文章主要介紹了Java實(shí)現(xiàn)的可選擇及拖拽圖片的面板功能,涉及java基于swing組件選擇與操作圖片元素的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-01-01SpringBoot項(xiàng)目設(shè)置斷點(diǎn)debug調(diào)試無效忽略web.xml問題的解決
這篇文章主要介紹了SpringBoot項(xiàng)目設(shè)置斷點(diǎn)debug調(diào)試無效忽略web.xml問題的解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08SpringCloud基本Rest微服務(wù)工程搭建過程
這篇文章主要介紹了SpringCloud基本Rest微服務(wù)工程搭建,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01淺談兩個(gè)jar包中包含完全相同的包名和類名的加載問題
下面小編就為大家?guī)硪黄獪\談兩個(gè)jar包中包含完全相同的包名和類名的加載問題。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-09-09java實(shí)現(xiàn)異步線程,回調(diào)接口方式
這篇文章主要介紹了java實(shí)現(xiàn)異步線程,回調(diào)接口方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07