欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

關(guān)于mysql時間區(qū)間問題淺析

 更新時間:2022年04月20日 10:31:27   作者:二狗的程序人生  
在很多地方都使用到了mysql的日期查詢,下面這篇文章主要給大家介紹了關(guān)于mysql時間區(qū)間問題的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下

一、between……and……

SELECT * FROM 表名 WHERE 開始時間字段名 BETWEEN '2018-09-01' AND '2018-09-14'; 

發(fā)現(xiàn)9月14號的數(shù)據(jù)沒有出來,那就證明between……and……是左閉右開,即[a,b),包含a的值,不包含b的值。

將上面代碼修改下面的語句即可,將原來的日期加上一天,就行。

select * from 表名 where 字段名 BETWEEN '2018-08-08' and DATE_ADD('2018-09-14',INTERVAL 1 DAY);

這個問題其實代入到數(shù)學(xué)中很簡單。

我測試的時候和同事說沒有包含這一天的數(shù)據(jù),還爭論了半天,其實是因為思維的問題,程序員的思維和正常人的思維是有一定差異的。就像我有時候就會從0開始數(shù)東西,到最后發(fā)現(xiàn)不對。當(dāng)然生活中還是要正常,工作中不正常的需求太多了。

二、<和>問題

我的項目用的mybatis,下面就是截取mapper的一部分,其實和上面的between一樣的用法

<if test="開始時間字段名 != null and 開始時間字段名 != ''">
   AND 開始時間字段名 &gt;= #{前臺傳的值}
</if>
<if test="結(jié)束時間字段名!= null and 結(jié)束時間字段名!= ''">
   AND 結(jié)束時間字段名 &lt;= DATE_ADD(#{前臺傳的值},INTERVAL 1 DAY)
</if>

三、在java代碼中拼接

在代碼中拼接,用上面的&lt;和&gt;查詢,簡單粗暴,只是記錄一下實現(xiàn)方法

if(StringUtils.isNotEmpty(beginDate)){
  params.put("beginDate",beginDate+" 00:00:00");
}
if(StringUtils.isNotEmpty(endDate)){
  params.put("endDate",endDate + " 23:59:59");
}

四、轉(zhuǎn)變格式查詢

問題描述:db存的格式一般是“yyyy-MM-dd HH:mm:ss”,但是前臺查詢并不會這樣精確,往往會傳“yyyy-MM-dd”格式的,像上面的拼接就會顯得極及的LOW,在XXXMapper.xml的sql語句中完成會很優(yōu)雅。

AND DATE_FORMAT(存日期的字段, '%Y-%m-%d') &gt;= #{Entity日期屬性}

附:Mysql如何實現(xiàn)指定時間區(qū)間的所有日期

Mysql沒有遞歸查詢,是如何實現(xiàn)指定日期查詢的:mysql.help_topic 這時候就可以使用mysql自帶的這個表來實現(xiàn)。(算是取巧的方法,暫時沒找到更好的方法)

SELECT DATE_FORMAT( date_add(concat('2019-01-01'), interval(help_topic_id) DAY),'%Y-%m-%d') DT 
        FROM mysql.help_topic
        WHERE help_topic_id  <=  timestampdiff(DAY,concat('2019-01-01'),concat('2019-12-01'))

總結(jié)

到此這篇關(guān)于mysql時間區(qū)間問題的文章就介紹到這了,更多相關(guān)mysql時間區(qū)間問題內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • IDEA連接不上MySQL端口號占用的解決

    IDEA連接不上MySQL端口號占用的解決

    這篇文章主要介紹了IDEA連接不上MySQL端口號占用的解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • MySQL中CHAR和VARCHAR類型演變和詳解

    MySQL中CHAR和VARCHAR類型演變和詳解

    MySQL數(shù)據(jù)庫的varchar類型在5.0.3以下的版本中的最大長度限制為255,其數(shù)據(jù)范圍可以是0~255
    2012-06-06
  • 一些mysql啟動參數(shù)的說明和優(yōu)化方法

    一些mysql啟動參數(shù)的說明和優(yōu)化方法

    要求MySQL能有的連接數(shù)量。當(dāng)主要MySQL線程在一個很短時間內(nèi)得到非常多的連接請求,這就起作用,然后主線程花些時間(盡管很短)檢查連接并且啟動一個新線程。
    2011-04-04
  • MySQL覆蓋索引的使用示例

    MySQL覆蓋索引的使用示例

    如果一個索引包含(或覆蓋)所有需要查詢的字段的值,稱為‘覆蓋索引’。這篇文章主要給大家介紹了關(guān)于MySQL覆蓋索引的相關(guān)資料,需要的朋友可以參考下
    2021-01-01
  • mysql插入中文數(shù)據(jù)變成問號的解決方案

    mysql插入中文數(shù)據(jù)變成問號的解決方案

    這篇文章主要介紹了mysql插入中文數(shù)據(jù)變成問號的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • MySQL中的redo log和undo log日志詳解

    MySQL中的redo log和undo log日志詳解

    MySQL日志系統(tǒng)中最重要的日志為重做日志redo log和歸檔日志bin log,后者為MySQL Server層的日志,前者為InnoDB存儲引擎層的日志。今天通過本文給大家介紹MySQL中的redo log和undo log日志,感興趣的朋友一起看看吧
    2021-07-07
  • MySQL分頁技術(shù)、6種分頁方法總結(jié)

    MySQL分頁技術(shù)、6種分頁方法總結(jié)

    這篇文章主要介紹了MySQL分頁技術(shù)、6種分頁方法總結(jié),本文總結(jié)了6種分頁的方法并分別一一講解它們的特點,需要的朋友可以參考下
    2015-07-07
  • 利用Shell腳本實現(xiàn)遠(yuǎn)程MySQL自動查詢

    利用Shell腳本實現(xiàn)遠(yuǎn)程MySQL自動查詢

    本篇文章是對利用Shell腳本實現(xiàn)遠(yuǎn)程MySQL自動查詢的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • 如何用mysql自帶的定時器定時執(zhí)行sql(每天0點執(zhí)行與間隔分/時執(zhí)行)

    如何用mysql自帶的定時器定時執(zhí)行sql(每天0點執(zhí)行與間隔分/時執(zhí)行)

    在開發(fā)過程中經(jīng)常會遇到這樣一個問題,每天或者每月必須定時去執(zhí)行一條sql語句或更新或刪除或執(zhí)行特定的sql語句,下面這篇文章主要給大家介紹了關(guān)于如何用mysql自帶的定時器定時執(zhí)行sql(每天0點執(zhí)行與間隔分/時執(zhí)行)的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • MySQL?InnoDB引擎的緩存特性詳解

    MySQL?InnoDB引擎的緩存特性詳解

    這篇文章主要介紹了MySQL?InnoDB引擎的緩存特性詳解的相關(guān)資料,需要的朋友可以參考下
    2022-09-09

最新評論