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

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

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

前言

mysql中內置函數date_add 和 date_sub能對指定的時間進行增加或減少一個指定的時間間隔,返回的是一個日期。

語法

添加時間間隔

DATE_ADD(date,INTERVAL expr type)

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

減少時間間隔

DATE_SUB(date, INTERVAL expr type)

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

參數說明

date 操作的時間
INTERVAL為關鍵詞
expr 具體數值
type 時間間隔單位

可用的type參數值如下:

在這里插入圖片描述

注意:type可以復合型的,比如 YEAR_MONTH。如果type不是復合型的,DATE_ADD和DATE_SUB其實可以通用,因為expr可以為一個負數。對應復合型的type,需要使用引號對兩個參數進行引用起來,中間用任何非數字字符作為間隔即可,并且不能使用負數。但是時間間隔只指定了一個值, 那么也能正常工作,但是對應XXX_YYY使用的是下劃線后YYY的單位,也就相當于 一單位的type,這時也就可以使用負數。

示例代碼

復合型

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

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

非復合型

select date_add(now(), interval 1 day); # 加1天 2024-04-30 16:25:49
select date_add(now(),INTERVAL -1 DAY); # 當前日期向前推1天 2024-04-28 16:25:49
select date_add(now(), interval 1 hour);# 加1小時 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); # 當前日期向后推1天 2024-04-30 16:31:34
select date_sub(now(), interval 1 hour);# 減1小時 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 

運用

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

相關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為妥投時間,o.interface_call_time <= DATE_SUB(NOW(), INTERVAL 7 DAY) 這里將當前時間減去7天后,再去和妥投時間進行比較,小于或等于這個結果的都是妥投超過了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();

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

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

相關文章

  • MySQL實際項目中常用的 DDL 模板

    MySQL實際項目中常用的 DDL 模板

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

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

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

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

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

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

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

    cmd連接mysql的方法詳解

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

    Mysql5.7在Centos6中的安裝方法

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

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

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

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

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

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

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

    MySQL中進行跨庫查詢的方法示例

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

最新評論

沙洋县| 府谷县| 都匀市| 青海省| 泰和县| 常州市| 句容市| 静乐县| 广东省| 蚌埠市| 陕西省| 桐乡市| 沾益县| 东台市| 若羌县| 长子县| 洛阳市| 榆林市| 滦南县| 湟源县| 美姑县| 白水县| 肃南| 永和县| 新田县| 西青区| 静安区| 贡觉县| 聂拉木县| 怀远县| 华宁县| 定远县| 闻喜县| 隆林| 讷河市| 克什克腾旗| 江孜县| 资溪县| 通榆县| 砚山县| 乌拉特前旗|