今天就跟大家聊聊有關怎么在MySQL中使用DATEDIFF函數(shù)獲取兩個日期的時間間隔,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
公司專注于為企業(yè)提供做網(wǎng)站、網(wǎng)站制作、微信公眾號開發(fā)、商城網(wǎng)站定制開發(fā),小程序設計,軟件按需求定制網(wǎng)站等一站式互聯(lián)網(wǎng)企業(yè)服務。憑借多年豐富的經(jīng)驗,我們會仔細了解各客戶的需求而做出多方面的分析、設計、整合,為客戶設計出具風格及創(chuàng)意性的商業(yè)解決方案,成都創(chuàng)新互聯(lián)更提供一系列網(wǎng)站制作和網(wǎng)站推廣的服務。返回兩個日期之間的時間間隔。
DateDiff(interval, date1, date2 [ ,firstdayofweek[ , firstweekofyear]] )
DateDiff 函數(shù)的語法有以下參數(shù):
參數(shù) | 描述 |
interval | 必選。字符串表達式,表示用于計算 date1 和 date2 之間的時間間隔。有關數(shù)值,請參閱“設置”部分。 |
date1, date2 | 必選。日期表達式。用于計算的兩個日期。 |
firstdayofweek | 可選。指定星期中第一天的常數(shù)。如果沒有指定,則默認為星期日。有關數(shù)值,請參閱“設置”部分。 |
firstweekofyear | 可選。指定一年中第一周的常數(shù)。如果沒有指定,則默認為 1 月 1 日所在的星期。有關數(shù)值,請參閱“設置”部分。 |
interval 參數(shù)可以有以下值:
設置 | 描述 |
yyyy | 年 |
q | 季度 |
m | 月 |
y | 一年的日數(shù) |
d | 日 |
w | 一周的日數(shù) |
ww | 周 |
h | 小時 |
m | 分鐘 |
s | 秒 |
firstdayofweek 參數(shù)可以有以下值:
常數(shù) | 值 | 描述 |
vbUseSystem | 0 | 使用區(qū)域語言支持 (NLS) API 設置。 |
vbSunday | 1 | 星期日(默認) |
vbMonday | 2 | 星期一 |
vbTuesday | 3 | 星期二 |
vbWednesday | 4 | 星期三 |
vbThursday | 5 | 星期四 |
vbFriday | 6 | 星期五 |
vbSaturday | 7 | 星期六 |
firstweekofyear 參數(shù)可以有以下值:
常數(shù) | 值 | 描述 |
vbUseSystem | 0 | 使用區(qū)域語言支持 (NLS) API 設置。 |
vbFirstJan1 | 1 | 由 1 月 1 日所在的星期開始(默認)。 |
vbFirstFourDays | 2 | 由在新年中至少有四天的第一周開始。 |
vbFirstFullWeek | 3 | 由在新的一年中第一個完整的周開始。 |
說明
DateDiff 函數(shù)用于判斷在兩個日期之間存在的指定時間間隔的數(shù)目。例如可以使用 DateDiff 計算兩個日期相差的天數(shù),或者當天到當年最后一天之間的星期數(shù)。
要計算 date1 和 date2 相差的天數(shù),可以使用“一年的日數(shù)”(“y”)或“日”(“d”)。當 interval 為“一周的日數(shù)”(“w”)時,DateDiff 返回兩個日期之間的星期數(shù)。如果 date1 是星期一,則DateDiff 計算到 date2 之前星期一的數(shù)目。此結果包含 date2 而不包含 date1。如果 interval 是“周”(“ww”),則 DateDiff 函數(shù)返回日歷表中兩個日期之間的星期數(shù)。函數(shù)計算 date1 和 date2之間星期日的數(shù)目。如果 date2 是星期日,DateDiff 將計算 date2,但即使 date1 是星期日,也不會計算 date1。
如果 date1 晚于 date2,則 DateDiff 函數(shù)返回負數(shù)。
firstdayofweek 參數(shù)會對使用“w”和“ww”間隔符號的計算產(chǎn)生影響。
如果 date1 或 date2 是日期文字,則指定的年度會成為日期的固定部分。但是如果 date1 或 date2 被包括在引號 (" ") 中并且省略年份,則在代碼中每次計算 date1 或 date2 表達式時,將插入當前年份。這樣就可以編寫適用于不同年份的程序代碼。
在 interval 為“年”(“yyyy”)時,比較 12 月 31 日和來年的 1 月 1 日,雖然實際上只相差一天,DateDiff 返回 1 表示相差一個年份。
MySQL 中 DATEDIFF(date1,date2) 返回起始時間 date1 和結束時間 date2 之間的天數(shù)。date1 和 date2 為日期或 date-and-time 表達式。計算時只用到這些值的日期部分。
【實例】使用 DATEDIFF() 函數(shù)計算兩個日期之間的間隔天數(shù),輸入的 SQL 語句和執(zhí)行結果如下所示。
mysql> SELECT DATEDIFF('2017-11-30','2017-11-29') AS COL1, -> DATEDIFF('2017-11-30','2017-12-15') AS col2; +------+------+ | COL1 | col2 | +------+------+ | 1 | -15 | +------+------+ 1 row in set (0.00 sec)
由運行結果可知,DATEDIFF() 函數(shù)返回 date1-date2 后的值,因此 DATEDIFF('2017-11-30','2017-11-29') 的返回值為 1,DATEDIFF('2017-11-30 23:59:59','2017-12-15') 的返回值為 -15。
看完上述內(nèi)容,你們對怎么在MySQL中使用DATEDIFF函數(shù)獲取兩個日期的時間間隔有進一步的了解嗎?如果還想了解更多知識或者相關內(nèi)容,請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。