mybatis plus時(shí)間判斷問(wèn)題
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)義#
- 字符名稱(chēng) 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ù)庫(kù)中跟當(dāng)前日期相等的記錄時(shí),還是調(diào)用eq方法,所以實(shí)體類(lèi)包括數(shù)據(jù)庫(kù)中的類(lèi)型是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ù)庫(kù)的函數(shù)進(jìn)行的,而不是字符串的比較。在Mybatis-Plus中,可以使用Wrapper對(duì)象的ge、gt、le、lt方法來(lái)進(jìn)行時(shí)間的比較。
這些方法會(huì)根據(jù)數(shù)據(jù)庫(kù)的不同,生成相應(yīng)的SQL語(yǔ)句來(lái)實(shí)現(xiàn)時(shí)間的比較操作。所以,不需要將時(shí)間轉(zhuǎn)換為字符串進(jìn)行比較。
如果要進(jìn)行天數(shù)的比較最好還是通過(guò)LocalDate做為數(shù)據(jù)的類(lèi)型,而不是LocalDateTime,否則比較的也只是大于當(dāng)前時(shí)刻,大于等于當(dāng)前時(shí)刻。
如果對(duì)數(shù)據(jù)的時(shí)刻值有操作需求,可以進(jìn)行以下設(shè)置:
@JsonFormat(pattern = "yyyy-MM-dd") private LocalDateTime createTime;
數(shù)據(jù)庫(kù)中對(duì)應(yīng)的字段類(lèi)型設(shè)置為date,而不是datetime,這樣即可以比較天數(shù),又可以在時(shí)刻上有更為豐富的操作。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用SpringData同時(shí)訪問(wèn)MySQL和Neo4j數(shù)據(jù)庫(kù)
本文通過(guò)使用SpringData在SpringBoot中配置MySQL和Neo4j雙數(shù)據(jù)源,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-08-08
java通過(guò)Jsoup爬取網(wǎng)頁(yè)過(guò)程詳解
這篇文章主要介紹了java通過(guò)Jsoup爬取網(wǎng)頁(yè)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09
使用spring+maven不同環(huán)境讀取配置方式
這篇文章主要介紹了使用spring+maven不同環(huán)境讀取配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08
Java多線程開(kāi)發(fā)工具之CompletableFuture的應(yīng)用詳解
做Java編程,難免會(huì)遇到多線程的開(kāi)發(fā),但是JDK8這個(gè)CompletableFuture類(lèi)很多開(kāi)發(fā)者目前還沒(méi)聽(tīng)說(shuō)過(guò),但是這個(gè)類(lèi)實(shí)在是太好用了,本文就來(lái)聊聊它的應(yīng)用吧2023-03-03
nacos單機(jī)版啟動(dòng)失敗問(wèn)題以及解決
這篇文章主要介紹了nacos單機(jī)版啟動(dòng)失敗問(wèn)題以及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07
在Java中實(shí)現(xiàn)二叉搜索樹(shù)的全過(guò)程記錄
二叉樹(shù)包含了根節(jié)點(diǎn),孩子節(jié)點(diǎn),葉節(jié)點(diǎn),每一個(gè)二叉樹(shù)只有一個(gè)根節(jié)點(diǎn),每一個(gè)結(jié)點(diǎn)最多只有兩個(gè)節(jié)點(diǎn),左子樹(shù)的鍵值小于根的鍵值,右子樹(shù)的鍵值大于根的鍵值,下面這篇文章主要給大家介紹了關(guān)于如何在Java中實(shí)現(xiàn)二叉搜索樹(shù)的相關(guān)資料,需要的朋友可以參考下2022-03-03

