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

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計(jì)劃任務(wù)(事件調(diào)度器) Event Scheduler介紹

    MySQL計(jì)劃任務(wù)(事件調(diào)度器) Event Scheduler介紹

    MySQL5.1.x版本中引入了一項(xiàng)新特性EVENT,顧名思義就是事件、定時(shí)任務(wù)機(jī)制,在指定的時(shí)間單元內(nèi)執(zhí)行特定的任務(wù),因此今后一些對(duì)數(shù)據(jù)定時(shí)性操作不再依賴外部程序,而直接使用數(shù)據(jù)庫本身提供的功能
    2013-10-10
  • 通過DML更新MySQL數(shù)據(jù)庫數(shù)據(jù)的示例代碼

    通過DML更新MySQL數(shù)據(jù)庫數(shù)據(jù)的示例代碼

    這篇文章主要給大家介紹了如何通過DML更新MySQL數(shù)據(jù)庫的數(shù)據(jù),通過DML來對(duì)數(shù)據(jù)庫種地表的數(shù)據(jù)記錄進(jìn)行增刪改查操作,文中給大家了詳細(xì)的代碼示例供大家參考,具有一定的參考價(jià)值,需要的朋友可以參考下
    2024-01-01
  • mysql遞歸查詢所有子集的實(shí)現(xiàn)方法

    mysql遞歸查詢所有子集的實(shí)現(xiàn)方法

    本文主要介紹了mysql遞歸查詢所有子集的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-09-09
  • 詳解MySQL如何使用離線模式維護(hù)服務(wù)器

    詳解MySQL如何使用離線模式維護(hù)服務(wù)器

    這篇文章主要為大家介紹了MySQL如何使用離線模式維護(hù)服務(wù)器,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • mysql數(shù)據(jù)庫常見的優(yōu)化操作總結(jié)(經(jīng)驗(yàn)分享)

    mysql數(shù)據(jù)庫常見的優(yōu)化操作總結(jié)(經(jīng)驗(yàn)分享)

    這篇文章主要給大家介紹了關(guān)于mysql數(shù)據(jù)庫常見的優(yōu)化操作,文章總結(jié)的都是個(gè)人日常開發(fā)使用mysql數(shù)據(jù)庫的經(jīng)驗(yàn)所得,其中包括Index索引、少用SELECT*、EXPLAIN SELECT以及開啟查詢緩存等相關(guān)資料,相信會(huì)對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來一起看看吧。
    2017-04-04
  • MySQL?INSERT語句實(shí)現(xiàn)當(dāng)記錄不存在時(shí)插入的幾種方法

    MySQL?INSERT語句實(shí)現(xiàn)當(dāng)記錄不存在時(shí)插入的幾種方法

    MySQL的INSERT語句是用于向數(shù)據(jù)庫表中插入新記錄的關(guān)鍵命令,下面這篇文章主要介紹了MySQL?INSERT語句實(shí)現(xiàn)當(dāng)記錄不存在時(shí)插入的幾種方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-03-03
  • mysql 5.7.11 winx64快速安裝配置教程

    mysql 5.7.11 winx64快速安裝配置教程

    這篇文章主要為大家分享了mysql5.7.11 winx64安裝配置方法圖文教程,感興趣的朋友可以參考一下
    2016-07-07
  • MySQL 集群遷移到 Kubernetes操作步驟

    MySQL 集群遷移到 Kubernetes操作步驟

    這篇文章主要為大家介紹了MySQL 集群遷移到 Kubernetes使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • MySQL 使用 Performance Schema 定位和解決慢 SQL 問題

    MySQL 使用 Performance Schema 定位和解決慢 

    本文介紹了如何使用MySQL的PerformanceSchema來定位和解決慢SQL查詢問題,通過啟用PerformanceSchema并分析相關(guān)的系統(tǒng)表,可以收集到詳細(xì)的性能數(shù)據(jù),從而識(shí)別出影響性能的SQL語句,優(yōu)化策略包括優(yōu)化查詢語句、調(diào)整數(shù)據(jù)庫配置等
    2025-02-02
  • 如何清除mysql注冊(cè)表

    如何清除mysql注冊(cè)表

    在本篇文章里小編給大家整理的是關(guān)于如何清除mysql注冊(cè)表的相關(guān)知識(shí)點(diǎn)內(nèi)容,有需要的朋友們可以參考下。
    2020-08-08

最新評(píng)論