mysql判断是否在日期区间_通过sql判断时间区间是否存在数据
在做項目的時候遇到過一個問題,用戶需要獲取當前月或者幾個月的數據,但是有一個要求,如果已經存在一張單已經包含了這幾個月的數據,那么就不能再提取到重復的數據。
其實這個問題,我做完了我的方式之后才發現,有兩種方式。
第一種:在獲取到的數據上添加標識位,如果有單據已經占用了該數據,就在提取的時候根據標識排除,這種方法要考慮到表的設計,業務的連續。(此種不舉例)
第二種:根據時間來進行判斷,判斷的邏輯較為復雜,主要是考慮到再次想建立的時間區間不能包含或大于已存在的單(其中有一個邏輯,如果新建的單的開始時間大于已存在的單開始時間且新建的單的結束時間小于已存在的單的結束時間,那么新建單的開始時間和結束時間必定包含于已存在的單的時間區間之內。故只需要判斷,是否存在已存在的單的開始結束時間區間包含新建單的開始時間或包含結束時間,或新建單的開始時間小于已存在單的開始時間且新建單的結束時間大于已存在單的結束時間,邏輯比較亂,如果業務用不到,不存在時間區間的概念,可以不考慮第二種方法。采用上一種);
mybatis sql如下:
and ( reconstartdate between #{reconstartdate,jdbctype=date} and #{reconenddate,jdbctype=date}
or reconenddate between #{reconstartdate,jdbctype=date} and #{reconenddate,jdbctype=date}
#{reconstartdate,jdbctype=date} = ]]> #{reconenddate,jdbctype=date} )
希望與廣大網友互動??
點此進行留言吧!
總結
以上是生活随笔為你收集整理的mysql判断是否在日期区间_通过sql判断时间区间是否存在数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DHTMLX 前端框架 建立你的一个应
- 下一篇: mysql直接生成excel_MYSQL