mysql中日期的加減 date_add()、date_sub() 函數(shù)及用法小結(jié)
mysql中日期的加減 date_add()、date_sub() 函數(shù)
一、說(shuō)明
DATE_ADD() :從日期增加指定的時(shí)間間隔,返回的是一個(gè)字符串
DATE_ADD(date,INTERVAL expr type)
date 參數(shù)是合法的日期表達(dá)式。expr 參數(shù)是您希望添加的時(shí)間間隔。
type 參數(shù)可以是下列值
二、使用
now() //now函數(shù)為獲取當(dāng)前時(shí)間
select date_add(now(), interval 1 day); - 加1天 select date_add(now(),INTERVAL -1 DAY);-當(dāng)前日期向前推1天 select date_add(now(), interval 1 hour); -加1小時(shí) select date_add(now(), interval 1 minute); - 加1分鐘 select date_add(now(), interval 1 second); -加1秒 select date_add(now(), interval 1 microsecond);-加1毫秒 select date_add(now(), interval 1 week);-加1周 select date_add(now(), interval 1 month);-加1月 select date_add(now(), interval 1 quarter);-加1季 select date_add(now(), interval 1 year);-加1年
MySQL adddate(), addtime()函數(shù),可以用date_add() 來(lái)替代。
三、MySQL 為日期減去一個(gè)時(shí)間間隔:date_sub()
MySQL date_sub() 日期時(shí)間函數(shù) 和date_add() 用法一致。
補(bǔ)充:
mysql中date_add與date_sub函數(shù)的使用
下面是關(guān)于兩種的函數(shù)在MySQL中的用法:
在Mysql中,date_add與date_sub分別是指對(duì)于日期的一個(gè)加減操作。
date_add是指從日期中加上指定的時(shí)間間隔;date_sub是指從日期中減去指定的時(shí)間間隔。
mysql 中 DATE_ADD(date,INTERVAL expr type) 和 DATE_SUB(date,INTERVAL expr type)
這些函數(shù)執(zhí)行日期運(yùn)算。 date 是一個(gè) DATETIME 或DATE值,用來(lái)指定起始時(shí)間。 expr 是一個(gè)表達(dá)式,用來(lái)指定從起始日期添加或減去的時(shí)間間隔值。 Expr是一個(gè)字符串;對(duì)于負(fù)值的時(shí)間間隔,它可以以一個(gè) ‘-’開(kāi)頭。 type 為關(guān)鍵詞,它指示了表達(dá)式被解釋的方式。
關(guān)鍵詞INTERVA及 type 分類符均不區(qū)分大小寫(xiě)。
mysql中內(nèi)置函數(shù)date_add和date_sub能對(duì)指定的時(shí)間進(jìn)行增加或減少一個(gè)指定的時(shí)間間隔,語(yǔ)法如下:
DATE_ADD(date,INTERVAL expr type) DATE_SUB(date,INTERVAL expr type)
其中date是指定的日期,INTERVAL為關(guān)鍵詞,expr是具體的時(shí)間間隔,type是時(shí)間單位。注意:type可以復(fù)合型的,比如YEAR_MONTH。如果type不是復(fù)合型的,DATE_ADD和DATE_SUB其實(shí)可以通用,因?yàn)閑xpr可以為一個(gè)負(fù)數(shù)??捎玫膖ype如下表:
MICROSECOND 間隔單位:毫秒
SECOND 間隔單位:秒
MINUTE 間隔單位:分鐘
HOUR 間隔單位:小時(shí)
DAY 間隔單位:天
WEEK 間隔單位:星期
MONTH 間隔單位:月
QUARTER 間隔單位:季度
YEAR 間隔單位:年
SECOND_MICROSECOND 復(fù)合型,間隔單位:秒、毫秒,expr可以用兩個(gè)值來(lái)分別指定秒和毫秒
MINUTE_MICROSECOND 復(fù)合型,間隔單位:分、毫秒
MINUTE_SECOND 復(fù)合型,間隔單位:分、秒
HOUR_MICROSECOND 復(fù)合型,間隔單位:小時(shí)、毫秒
HOUR_SECOND 復(fù)合型,間隔單位:小時(shí)、秒
HOUR_MINUTE 復(fù)合型,間隔單位:小時(shí)分
DAY_MICROSECOND 復(fù)合型,間隔單位:天、毫秒
DAY_SECOND 復(fù)合型,間隔單位:天、秒
DAY_MINUTE 復(fù)合型,間隔單位:天、分
DAY_HOUR 復(fù)合型,間隔單位:天、小時(shí)
YEAR_MONTH 復(fù)合型,間隔單位:年、月
對(duì)應(yīng)復(fù)合型的type,需要使用引號(hào)對(duì)兩個(gè)參數(shù)進(jìn)行引用起來(lái),中間用任何非數(shù)字字符作為間隔即可,并且不能使用負(fù)數(shù)。但是時(shí)間間隔只指定了一個(gè)值,那么也能正常工作,但是對(duì)應(yīng)XXX_YYY使用的單位為YYY,也就相當(dāng)于單一單位的type,同時(shí)可以使用負(fù)數(shù)。復(fù)合型的用法如下:
mysql> select date_add('2013-01-18', interval '1 2' YEAR_MONTH); +-----------------------------------------------------+ | date_add('2013-01-18', interval '1 2' YEAR_MONTH) | +-----------------------------------------------------+ | 2014-03-18 | +-----------------------------------------------------+ mysql> select date_add('2013-01-18', interval '1-2' YEAR_MONTH); +----------------------------------------------------+ | date_add('2013-01-18', interval '1-2' YEAR_MONTH) | +----------------------------------------------------+ | 2014-03-18 | +----------------------------------------------------+ mysql> select date_add('2013-01-18', interval '1,2' YEAR_MONTH); +---------------------------------------------------+ | date_add('2013-01-18', interval '1,2' YEAR_MONTH) | +---------------------------------------------------+ | 2014-03-18 | +---------------------------------------------------+ mysql> select date_add('2013-01-18', interval 1 YEAR_MONTH); +-----------------------------------------------+ | date_add('2013-01-18', interval 1 YEAR_MONTH) | +-----------------------------------------------+ | 2013-02-18 | +-----------------------------------------------+ mysql> select date_add('2013-01-18', interval -1 YEAR_MONTH); +------------------------------------------------+ | date_add('2013-01-18', interval -1 YEAR_MONTH) | +------------------------------------------------+ | 2012-12-18 | +------------------------------------------------+
以上轉(zhuǎn)載于://www.dbjr.com.cn/database/mysql/52936.htm
下面是我在本地的應(yīng)用:
SELECT * FROM `didi` where order_id = '70368832780060 ';
SELECT date_sub(call_time,interval 11 hour ),date_sub(grab_time,interval 11 minute ), date_sub(cancel_time,interval 11 day ),date_sub(finish_time,interval 11 week ) FROM `didi` where order_id = '70368832780060 ';
結(jié)果顯示為:
到此這篇關(guān)于mysql中日期的加減 date_add()、date_sub() 函數(shù)的文章就介紹到這了,更多相關(guān)mysql日期加減內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL關(guān)于sql_mode解析與設(shè)置講解
今天小編就為大家分享一篇關(guān)于MySQL關(guān)于sql_mode解析與設(shè)置講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03Mysql數(shù)據(jù)庫(kù)面試必備之三大log介紹
大家好,本篇文章主要講的是Mysql數(shù)據(jù)庫(kù)面試必備之三大log介紹,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下2021-12-12mysql中Innodb 行鎖實(shí)現(xiàn)原理
InnoDB的行鎖是通過(guò)索引項(xiàng)加鎖實(shí)現(xiàn)的,分為使用索引和非索引字段檢索的情況,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-10-10mysql數(shù)據(jù)庫(kù)之索引詳細(xì)介紹
大家好,本篇文章主要講的是mysql數(shù)據(jù)庫(kù)之索引詳細(xì)介紹,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽2021-12-12Navicat如何遠(yuǎn)程連接云服務(wù)器數(shù)據(jù)庫(kù)
這篇文章主要介紹了Navicat如何遠(yuǎn)程連接云服務(wù)器數(shù)據(jù)庫(kù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11MySQL日期時(shí)間函數(shù)知識(shí)匯總
這篇文章主要介紹了MySQL日期時(shí)間函數(shù)知識(shí)匯總,這不同數(shù)據(jù)庫(kù)之間基本相同,只會(huì)有個(gè)別函數(shù)的差異。下文詳細(xì)介紹,需要的小伙伴可以參考一下2022-03-03