最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL加減間隔時(shí)間函數(shù)DATE_ADD和DATE_SUB的實(shí)現(xiàn)

 更新時(shí)間:2024年09月04日 11:27:55   作者:消碼哥  
mysql中內(nèi)置函數(shù)date_add 和 date_sub能對(duì)指定的時(shí)間進(jìn)行增加或減少一個(gè)指定的時(shí)間間隔,本文主要介紹了MySQLDATE_ADD和DATE_SUB的實(shí)現(xiàn),感興趣的可以了解一下

前言

mysql中內(nèi)置函數(shù)date_add 和 date_sub能對(duì)指定的時(shí)間進(jìn)行增加或減少一個(gè)指定的時(shí)間間隔,返回的是一個(gè)日期。

語法

添加時(shí)間間隔

DATE_ADD(date,INTERVAL expr type)

SELECT DATE_add(NOW(),INTERVAL -7 DAY);//獲取7天前的日期
SELECT DATE_add(NOW(),INTERVAL  7 DAY);//獲取7天后的日期

減少時(shí)間間隔

DATE_SUB(date, INTERVAL expr type)

SELECT DATE_SUB(NOW(),INTERVAL -7 DAY);//獲取7天后的日期
SELECT DATE_SUB(NOW(),INTERVAL  7 DAY);//獲取7天前的日期

參數(shù)說明

date 操作的時(shí)間
INTERVAL為關(guān)鍵詞
expr 具體數(shù)值
type 時(shí)間間隔單位

可用的type參數(shù)值如下:

在這里插入圖片描述

注意:type可以復(fù)合型的,比如 YEAR_MONTH。如果type不是復(fù)合型的,DATE_ADD和DATE_SUB其實(shí)可以通用,因?yàn)閑xpr可以為一個(gè)負(fù)數(shù)。對(duì)應(yīng)復(fù)合型的type,需要使用引號(hào)對(duì)兩個(gè)參數(shù)進(jìn)行引用起來,中間用任何非數(shù)字字符作為間隔即可,并且不能使用負(fù)數(shù)。但是時(shí)間間隔只指定了一個(gè)值, 那么也能正常工作,但是對(duì)應(yīng)XXX_YYY使用的是下劃線后YYY的單位,也就相當(dāng)于 一單位的type,這時(shí)也就可以使用負(fù)數(shù)。

示例代碼

復(fù)合型

select date_add('2024-04-29', interval '1 2' YEAR_MONTH); #結(jié)果:2025-06-29                                      
select date_add('2024-04-29', interval '1-2' YEAR_MONTH); #結(jié)果:2025-06-29                                    
select date_add('2024-04-29', interval '1,2' YEAR_MONTH); #結(jié)果:2025-06-29                                  
select date_add('2024-04-29', interval 1 YEAR_MONTH);  #結(jié)果:2024-05-29                              
select date_add('2024-04-29', interval -1 YEAR_MONTH); #結(jié)果:2024-03-29  

# 這里先減1年,再減2月,最后減1天,有點(diǎn)意思
select date_sub('2024-04-29', interval '1 2' YEAR_MONTH); #結(jié)果:2023-02-28                                      
select date_sub('2024-04-29', interval '1-2' YEAR_MONTH); #結(jié)果:2023-02-28                                    
select date_sub('2024-04-29', interval '1,2' YEAR_MONTH); #結(jié)果:2023-02-28     
                             
select date_sub('2024-04-29', interval 1 YEAR_MONTH);  #結(jié)果:2024-03-29                              
select date_sub('2024-04-29', interval -1 YEAR_MONTH); #結(jié)果:2024-05-29                                                 

非復(fù)合型

select date_add(now(), interval 1 day); # 加1天 2024-04-30 16:25:49
select date_add(now(),INTERVAL -1 DAY); # 當(dāng)前日期向前推1天 2024-04-28 16:25:49
select date_add(now(), interval 1 hour);# 加1小時(shí) 2024-04-29 17:25:49
select date_add(now(), interval 1 minute); # 加1分鐘 2024-04-29 16:26:49
select date_add(now(), interval 1 second); # 加1秒 2024-04-29 16:25:50
select date_add(now(), interval 1 microsecond); # 加1毫秒 2024-04-29 16:25:49.000001
select date_add(now(), interval 1 week); # 加1周 2024-05-06 16:25:49
select date_add(now(), interval 1 month);# 加1月 2024-05-29 16:25:49
select date_add(now(), interval 1 quarter); # 加1季 2024-07-29 16:25:49
select date_add(now(), interval 1 year);# 加1年 2025-04-29 16:25:49

select date_sub(now(), interval 1 day); # 減1天 2024-04-28 16:31:34
select date_sub(now(),INTERVAL -1 DAY); # 當(dāng)前日期向后推1天 2024-04-30 16:31:34
select date_sub(now(), interval 1 hour);# 減1小時(shí) 2024-04-29 15:31:34
select date_sub(now(), interval 1 minute); # 減1分鐘 2024-04-29 16:30:34
select date_sub(now(), interval 1 second); # 減1秒 2024-04-29 16:31:33
select date_sub(now(), interval 1 microsecond); # 減1毫秒 2024-04-29 16:31:33.999999
select date_sub(now(), interval 1 week); # 減1周 2024-04-22 16:31:34
select date_sub(now(), interval 1 month);# 減1月 2024-03-29 16:31:34
select date_sub(now(), interval 1 quarter); # 加1季 2024-01-29 16:31:34
select date_sub(now(), interval 1 year);# 減1年 2023-04-29 16:31:34 

運(yùn)用

電商系統(tǒng)往往會(huì)有這樣一個(gè)功能,客戶收到貨后如果七天不點(diǎn)擊收貨按鈕話,系統(tǒng)會(huì)自動(dòng)將訂單設(shè)置為完成。這個(gè)功能就要求查詢妥投七天后沒有點(diǎn)擊收貨按鈕的訂單,將它們?cè)O(shè)置為完成。

相關(guān)SQL:

SELECT
      o.order_id,
      o.third_order_id
    FROM
        cere_shop_order o
    WHERE
        o.state < 4
        AND o.interface_call_time <= DATE_SUB(NOW(), INTERVAL 7 DAY)

state 訂單狀態(tài),小于4查詢未完成的訂單,interface_call_time為妥投時(shí)間,o.interface_call_time <= DATE_SUB(NOW(), INTERVAL 7 DAY) 這里將當(dāng)前時(shí)間減去7天后,再去和妥投時(shí)間進(jìn)行比較,小于或等于這個(gè)結(jié)果的都是妥投超過了7天的訂單。
這是比較推薦的寫法,但還可以寫成

SELECT
      o.order_id,
      o.third_order_id
    FROM
        cere_shop_order o
    WHERE
         o.state < 4
        AND DATE_ADD(o.interface_call_time,INTERVAL 7 DAY) < NOW();

這種寫法將要查詢的字段參與了函數(shù)計(jì)算,索引會(huì)失效,將會(huì)值全表掃描,性能很差,不推薦送使用。

到此這篇關(guān)于MySQL加減間隔時(shí)間函數(shù)DATE_ADD和DATE_SUB的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)MySQL DATE_ADD和DATE_SUB內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL實(shí)際項(xiàng)目中常用的 DDL 模板

    MySQL實(shí)際項(xiàng)目中常用的 DDL 模板

    本文詳細(xì)介紹了數(shù)據(jù)庫表的常見操作,包括創(chuàng)建帶審計(jì)字段和索引的模板、修改表結(jié)構(gòu)(如新增、刪除、修改字段)、索引管理(新增、刪除普通、唯一索引及聯(lián)合索引)、外鍵約束的新增和刪除、表結(jié)構(gòu)變更(如重命名表、設(shè)置字符集)以及刪除表,感興趣的朋友跟隨小編一起看看吧
    2025-12-12
  • MySQL基礎(chǔ)SQL優(yōu)化之查詢性能提升的4大技巧

    MySQL基礎(chǔ)SQL優(yōu)化之查詢性能提升的4大技巧

    在MySQL數(shù)據(jù)庫開發(fā)與管理過程中,SQL語句的性能至關(guān)重要,本文將結(jié)合實(shí)際案例,深入分析優(yōu)化前后的性能差異,助力開發(fā)者寫出高效的SQL語句
    2025-07-07
  • Mysql實(shí)現(xiàn)全文檢索、關(guān)鍵詞跑分的方法實(shí)例

    Mysql實(shí)現(xiàn)全文檢索、關(guān)鍵詞跑分的方法實(shí)例

    這篇文章主要給大家介紹了關(guān)于Mysql實(shí)現(xiàn)全文檢索、關(guān)鍵詞跑分的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Windows 64位重裝MySQL的教程(Zip版、解壓版MySQL安裝)

    Windows 64位重裝MySQL的教程(Zip版、解壓版MySQL安裝)

    這篇文章主要介紹了Windows 64位,重裝MySQL的方法(Zip版、解壓版MySQL安裝),本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值需要的朋友可以參考下
    2020-02-02
  • cmd連接mysql的方法詳解

    cmd連接mysql的方法詳解

    本篇文章是對(duì)cmd連接mysql的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • Mysql5.7在Centos6中的安裝方法

    Mysql5.7在Centos6中的安裝方法

    這篇文章主要介紹了Mysql5.7在Centos6中的安裝方法,需要的朋友可以參考下
    2017-06-06
  • MySQL一次性創(chuàng)建表格存儲(chǔ)過程實(shí)戰(zhàn)

    MySQL一次性創(chuàng)建表格存儲(chǔ)過程實(shí)戰(zhàn)

    這篇文章主要介紹了MySQL一次性創(chuàng)建表格存儲(chǔ)過程實(shí)戰(zhàn),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下
    2022-07-07
  • MySQL for update鎖表還是鎖行校驗(yàn)(過程詳解)

    MySQL for update鎖表還是鎖行校驗(yàn)(過程詳解)

    在MySQL中,使用for update子句可以對(duì)查詢結(jié)果集進(jìn)行行級(jí)鎖定,以便在事務(wù)中對(duì)這些行進(jìn)行更新或者防止其他事務(wù)對(duì)這些行進(jìn)行修改,這篇文章主要介紹了MySQL for update鎖表還是鎖行校驗(yàn),需要的朋友可以參考下
    2024-02-02
  • 高性能MySQL讀書筆記 找出誰持有鎖

    高性能MySQL讀書筆記 找出誰持有鎖

    周末重讀了一遍《高性能MySQL》,發(fā)現(xiàn)有些知識(shí)點(diǎn)看過便忘了,沒有實(shí)際動(dòng)手操作一遍就是記不牢,所以今天動(dòng)手操作了一下“找出誰持有鎖”,并把實(shí)驗(yàn)步驟記錄下來,有興趣的網(wǎng)友可以參照一二。
    2011-01-01
  • MySQL中進(jìn)行跨庫查詢的方法示例

    MySQL中進(jìn)行跨庫查詢的方法示例

    這篇文章主要給大家介紹了關(guān)于MySQL中進(jìn)行跨庫查詢的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07

最新評(píng)論

澳门| 额济纳旗| 龙南县| 舒兰市| 辛集市| 周口市| 柞水县| 文昌市| 娱乐| 阿巴嘎旗| 老河口市| 宣化县| 安康市| 启东市| 南漳县| 广饶县| 兴隆县| 饶河县| 咸宁市| 苏尼特左旗| 高邮市| 霍山县| 民和| 遂平县| 宜君县| 永顺县| 南漳县| 汶上县| 伊吾县| 通州区| 罗田县| 法库县| 商水县| 临漳县| 武汉市| 金秀| 万山特区| 交口县| 贵德县| 茶陵县| 城市|