Mybatis中如何查詢時間段內的資料

2021-08-02 09:28:53 字數 1079 閱讀 7891

有時候我們需要查詢一張表內一段時間內操作的資料,大家很容易就想到了 between ? and ? 這個 句型的sql 對不對? ,如果現在需要兩個引數(比如乙個開始日期,乙個結束日期)來傳遞,需求是選擇乙個引數或者兩個引數都可以查詢,但是如下邊這個條件判斷使用and連線,此時需要兩個引數都要有,才會有查詢結果,當其中有乙個日期引數為空的時候,這個sql就不會被執行,必須要兩個引數才可以查詢,這與我們的需求不符合,所以不可取,

stock_bill.bill_date between # and #

if>

現在我們將其中的兩個條件之間的and 改為or試一試

and stock_bill.bill_date between # and #

if>

此時如果輸入兩個日期引數同樣可以查詢到對應的資料,但是如果只輸入乙個開始日期引數,此時查詢結果為空,通過列印sql,我們可以看到只有乙個開始日期,沒有結束日期,between ? and ? 的兩個日期引數不完整,乙個引數為空,所以這個sql 就發生了錯誤,這顯然與我們的初衷不符合,所以這個方法也不可取,列印sql如下:

看來想要通過乙個引數就可以查詢到對應的資料,使用between?and ?是不行的,我只好放棄了between? and? ,而把他們都拆開來。**如下:

 and stock_bill.bill_date >= #if>

and stock_bill.bill_date <= #if>

此時的我又遇到了另外的坑,報錯資訊如下

the content of elements must consist of well-formed character data or markup. 這個錯誤是說我的》《號不符合xml規範,仔細一想真是,腦子不夠用了,這麼簡單地錯誤都出來了,看來真是不能心急,於是把》< 號使用了標籤括起來,**如下:

and stock_bill.bill_date =]]> #if>

and stock_bill.bill_date #if>

ok,然後啟動之後,我只選擇開始時間,只選擇結束時間,同時選擇開始時間和結束時間,發現查詢的結果都是正確的。

Mybatis中如何查詢時間段內的資料

有時候我們需要查詢一張表內一段時間內操作的資料,大家很容易就想到了 between and 這個 句型的sql 對不對?如果現在需要兩個引數 比如乙個開始日期,乙個結束日期 來傳遞,需求是選擇乙個引數或者兩個引數都可以查詢,但是如下邊這個條件判斷使用and連線,此時需要兩個引數都要有,才會有查詢結果...

JAVA MONGODB 查詢時間段

雖然mongodb存的時間為utc時間,與中國相差8小時,但是這並不需要客戶端程式做處理。dateformat format new dateformat yyyy mm dd hh mm ss date starttime format.parse 2019 06 17 15 37 08 date...

mysql查詢時間段

閱讀需要 3 分鐘 內容 mysql 時間段查詢 一些時間的型別 及常用時間函式 日期型別 儲存空間 日期格式 日期範圍 datetime 8 bytes yyyy mm dd hh mm ss 1000 01 01 00 00 00 9999 12 31 23 59 59 timestamp 4 ...