亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

mysql日期和時間的間隔計算實例分析

 更新時間:2019年12月31日 10:42:49   作者:luyaran  
這篇文章主要介紹了mysql日期和時間的間隔計算,結(jié)合實例形式分析了mysql日期和時間間隔計算的相關(guān)操作技巧與注意事項,需要的朋友可以參考下

本文實例講述了mysql日期和時間的間隔計算。分享給大家供大家參考,具體如下:

我們首先得明確一點,mysql間隔值主要用于日期和時間計算,如果我們要要創(chuàng)建間隔值,可以使用以下表達式:

INTERVAL expr unit

然后嘞,我們得了解,INTERVAL關(guān)鍵字是確定間隔值的expr,以及指定間隔單位的單位。 例如,要創(chuàng)建1天間隔,我們就要使用以下表達式:

INTERVAL 1 DAY

不過我們要注意,INTERVAL和UNIT不區(qū)分大小寫,因此以下表達式與上述表達式相當:

interval 1 day

日期和時間算術(shù)的間隔值的實際用法和語法,我們可以看下面的代碼:

date + INTERVAL expr unit
date - INTERVAL expr unit

間隔值同樣也用于各種時間函數(shù),如DATE_ADD,DATE_SUB,TIMESTAMPADD和TIMESTAMPDIFF。mysql定義了expr和unit的標準格式,如下表所示:

單位(unit) 表達式(expr)
DAY DAYS
DAY_HOUR ‘DAYS HOURS'
DAY_MICROSECOND ‘DAYS HOURS:MINUTES:SECONDS.MICROSECONDS'
DAY_MINUTE ‘DAYS HOURS:MINUTES'
DAY_SECOND ‘DAYS HOURS:MINUTES:SECONDS'
HOUR HOURS
HOUR_MICROSECOND ‘HOURS:MINUTES:SECONDS.MICROSECONDS'
HOUR_MINUTE ‘HOURS:MINUTES'
HOUR_SECOND ‘HOURS:MINUTES:SECONDS'
MICROSECOND MICROSECONDS
MINUTE MINUTES
MINUTE_MICROSECOND ‘MINUTES:SECONDS.MICROSECONDS'
MINUTE_SECOND ‘MINUTES:SECONDS'
MONTH MONTHS
QUARTER QUARTERS
SECOND SECONDS
SECOND_MICROSECOND ‘SECONDS.MICROSECONDS'
WEEK WEEKS
YEAR YEARS
YEAR_MONTH ‘YEARS-MONTHS'

我們來看個實例,下面的sql語句在2020-01-01日期上增加1天返回結(jié)果為,2020-01-02:

mysql> SELECT '2020-01-01' + INTERVAL 1 DAY;
+-------------------------------+
| '2020-01-01' + INTERVAL 1 DAY |
+-------------------------------+
| 2020-01-02          |
+-------------------------------+
1 row in set (0.01 sec)

如果我們在涉及DATE或DATETIME值的表達式中使用了間隔值,并且間隔值位于表達式的右側(cè),則可以使用expr的負值,如以下示例所示:

mysql> SELECT '2020-01-01' + INTERVAL -1 DAY;
+--------------------------------+
| '2020-01-01' + INTERVAL -1 DAY |
+--------------------------------+
| 2019-12-31           |
+--------------------------------+
1 row in set

我們再來看如何使用DATE_ADD和DATE_SUB從日期值添加/減去1個月:

mysql> SELECT DATE_ADD('2020-01-01', INTERVAL 1 MONTH) 1_MONTH_LATER, 
    DATE_SUB('2020-01-01',INTERVAL 1 MONTH) 1_MONTH_BEFORE;
+---------------+----------------+
| 1_MONTH_LATER | 1_MONTH_BEFORE |
+---------------+----------------+
| 2020-02-01  | 2019-12-01   |
+---------------+----------------+
1 row in set

完事再來看一個sql使用TIMESTAMPADD(unit,interval,expression)函數(shù)向時間戳值添加30分鐘:

mysql> SELECT TIMESTAMPADD(MINUTE,30,'2020-01-01') 30_MINUTES_LATER;
+---------------------+
| 30_MINUTES_LATER  |
+---------------------+
| 2020-01-01 00:30:00 |
+---------------------+
1 row in set

說這么多,大家可能還有點懵,不怕,來看具體的操作,我們創(chuàng)建一個名為memberships的新表,用于演示:

CREATE TABLE memberships (
  id INT AUTO_INCREMENT PRIMARY KEY,
  email VARCHAR(355) NOT NULL,
  plan VARCHAR(255) NOT NULL,
  expired_date DATE NOT NULL
);

在上面的memberships表中,expired_date列存儲每個會員的會員資格到期日,完事我們插入一部分數(shù)據(jù)到memberships表中:

INSERT INTO memberships(email, plan, expired_date)
VALUES('john.doe@yiibai.com','Gold','2018-07-13'),
   ('jane.minsu@yiibai.com','Platinum','2018-07-10'),
   ('david.corp@yiibai.com','Silver','2018-07-15'),
   ('julia.william@yiibai.com','Gold','2018-07-20'),
   ('peter.drucker@yiibai.com','Silver','2018-07-08');

現(xiàn)在我們來假設(shè)今天是2018-07-06,然后我們來使用sql語句查詢在未來7天內(nèi)會員資格將要過期的會員:

SELECT 
  email,
  plan,
  expired_date,
  DATEDIFF(expired_date, '2018-07-06') remaining_days
FROM
  memberships
WHERE
  '2018-07-06' BETWEEN DATE_SUB(expired_date, INTERVAL 7 DAY) AND expired_date;

執(zhí)行上面查詢語句后,得到以下結(jié)果:

+--------------------------+----------+--------------+----------------+
| email          | plan   | expired_date | remaining_days |
+--------------------------+----------+--------------+----------------+
| john.doe@yiibai.com   | Gold   | 2018-07-13  |       7 |
| jane.minsu@yiibai.com  | Platinum | 2018-07-10  |       4 |
| peter.drucker@yiibai.com | Silver  | 2018-07-08  |       2 |
+--------------------------+----------+--------------+----------------+
3 rows in set

在上面的sql中,DATE_SUB函數(shù)將間隔值(INTERVAL 7 DAY)指定的過期日期減去7天,也就是說,本來某條數(shù)據(jù)的日期是13號,減去七天,那就是6號了。大概就是這個意思了,相信大家都有一定的理解了。

那咱們今天就到這里了。

更多關(guān)于MySQL相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《MySQL查詢技巧大全》、《MySQL事務操作技巧匯總》、《MySQL存儲過程技巧大全》、《MySQL數(shù)據(jù)庫鎖相關(guān)技巧匯總》及《MySQL常用函數(shù)大匯總

希望本文所述對大家MySQL數(shù)據(jù)庫計有所幫助。

相關(guān)文章

  • MySQL建立唯一索引實現(xiàn)插入重復自動更新

    MySQL建立唯一索引實現(xiàn)插入重復自動更新

    這篇文章給大家分享的是當向數(shù)據(jù)插入數(shù)據(jù)時,判斷字段是不是存在,存在執(zhí)行更新操作,如果不存在就執(zhí)行插入操作的方法,有需要的朋友們可以參考借鑒。
    2016-09-09
  • 淺析mysql 共享表空間與獨享表空間以及他們之間的轉(zhuǎn)化

    淺析mysql 共享表空間與獨享表空間以及他們之間的轉(zhuǎn)化

    本篇文章是對mysql 共享表空間與獨享表空間以及他們之間的轉(zhuǎn)化進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • MySQL 5.7及8.0版本數(shù)據(jù)庫的root密碼遺忘的解決方法

    MySQL 5.7及8.0版本數(shù)據(jù)庫的root密碼遺忘的解決方法

    這篇文章主要介紹了MySQL 5.7及8.0版本數(shù)據(jù)庫的root密碼遺忘的解決辦法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友參考下吧
    2019-12-12
  • MySQL-Python安裝問題小記

    MySQL-Python安裝問題小記

    這篇文章主要介紹了MySQL-Python安裝問題小記,需要的朋友可以參考下
    2014-12-12
  • MySQL8 批量修改字符集腳本

    MySQL8 批量修改字符集腳本

    本文主要介紹了MySQL8 批量修改字符集腳本,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • 詳解Spring Aop實現(xiàn)日志收集和重復屬性賦值

    詳解Spring Aop實現(xiàn)日志收集和重復屬性賦值

    AOP(面向切面編程)是一種編程思想,它允許開發(fā)者將公共邏輯(如日志記錄、權(quán)限校驗等)抽離出來,使得可以更專注于業(yè)務邏輯的開發(fā),SpringAOP通過定義切面、切入點、通知等概念,本文介紹Spring Aop實現(xiàn)日志收集和重復屬性賦值的相關(guān)操作,感興趣的朋友一起看看吧
    2023-04-04
  • mysql 主從服務器的簡單配置

    mysql 主從服務器的簡單配置

    首先呢,需要有兩個mysql服務器。如果做測試的話可以在同一臺機器上裝兩個mysql服務程序,注意要兩個運行程序的端口不能一樣。我用的是一個是默認的3306,從服務器用的是3307端口。
    2009-05-05
  • MySQL表添加某一列和刪除某一列的方法

    MySQL表添加某一列和刪除某一列的方法

    MySQL是一種廣泛使用的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它是一種開源的軟件,由瑞典的MySQL?AB公司開發(fā)的,這篇文章主要介紹了關(guān)于MySQL表添加某一列和刪除某一列的sql語句,需要的朋友可以參考下
    2023-06-06
  • RPM方式安裝MySQL5.6源碼

    RPM方式安裝MySQL5.6源碼

    這篇文章主要為大家分享了RPM方式安裝MySQL5.6源碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • mysql中如何根據(jù)經(jīng)緯度計算距離

    mysql中如何根據(jù)經(jīng)緯度計算距離

    這篇文章主要給大家介紹了關(guān)于mysql中如何根據(jù)經(jīng)緯度計算距離的相關(guān)資料,經(jīng)緯度距離計算方法是一種用來計算地球上兩個點之間距離的方法,它可以在MySQL數(shù)據(jù)庫中輕松實現(xiàn),非常適用于需要進行地理定位的應用程序,需要的朋友可以參考下
    2023-08-08

最新評論