MySQL DATEDIFF函數(shù)獲取兩個日期的時間間隔的方法
返回兩個日期之間的時間間隔。
語法DateDiff(interval, date1, date2 [ ,firstdayofweek[ , firstweekofyear]] )
DateDiff 函數(shù)的語法有以下參數(shù):
參數(shù) 描述 interval 必選。字符串表達(dá)式,表示用于計算 date1 和 date2 之間的時間間隔。有關(guān)數(shù)值,請參閱“設(shè)置”部分。 date1, date2 必選。日期表達(dá)式。用于計算的兩個日期。 firstdayofweek 可選。指定星期中第一天的常數(shù)。如果沒有指定,則默認(rèn)為星期日。有關(guān)數(shù)值,請參閱“設(shè)置”部分。 firstweekofyear 可選。指定一年中第一周的常數(shù)。如果沒有指定,則默認(rèn)為 1 月 1 日所在的星期。有關(guān)數(shù)值,請參閱“設(shè)置”部分。
設(shè)置interval 參數(shù)可以有以下值:
設(shè)置 描述 yyyy 年 q 季度 m 月 y 一年的日數(shù) d 日 w 一周的日數(shù) ww 周 h 小時 m 分鐘 s 秒
firstdayofweek 參數(shù)可以有以下值:
常數(shù) 值 描述 vbUseSystem 0 使用區(qū)域語言支持 (NLS) API 設(shè)置。 vbSunday 1 星期日(默認(rèn)) vbMonday 2 星期一 vbTuesday 3 星期二 vbWednesday 4 星期三 vbThursday 5 星期四 vbFriday 6 星期五 vbSaturday 7 星期六
firstweekofyear 參數(shù)可以有以下值:
常數(shù) 值 描述 vbUseSystem 0 使用區(qū)域語言支持 (NLS) API 設(shè)置。 vbFirstJan1 1 由 1 月 1 日所在的星期開始(默認(rèn))。 vbFirstFourDays 2 由在新年中至少有四天的第一周開始。 vbFirstFullWeek 3 由在新的一年中第一個完整的周開始。
說明
DateDiff 函數(shù)用于判斷在兩個日期之間存在的指定時間間隔的數(shù)目。例如可以使用 DateDiff 計算兩個日期相差的天數(shù),或者當(dāng)天到當(dāng)年最后一天之間的星期數(shù)。
要計算 date1 和 date2 相差的天數(shù),可以使用“一年的日數(shù)”(“y”)或“日”(“d”)。當(dāng) interval 為“一周的日數(shù)”(“w”)時,DateDiff 返回兩個日期之間的星期數(shù)。如果 date1 是星期一,則DateDiff 計算到 date2 之前星期一的數(shù)目。此結(jié)果包含 date2 而不包含 date1。如果 interval 是“周”(“ww”),則 DateDiff 函數(shù)返回日歷表中兩個日期之間的星期數(shù)。函數(shù)計算 date1 和 date2之間星期日的數(shù)目。如果 date2 是星期日,DateDiff 將計算 date2,但即使 date1 是星期日,也不會計算 date1。
如果 date1 晚于 date2,則 DateDiff 函數(shù)返回負(fù)數(shù)。
firstdayofweek 參數(shù)會對使用“w”和“ww”間隔符號的計算產(chǎn)生影響。
如果 date1 或 date2 是日期文字,則指定的年度會成為日期的固定部分。但是如果 date1 或 date2 被包括在引號 (' ') 中并且省略年份,則在代碼中每次計算 date1 或 date2 表達(dá)式時,將插入當(dāng)前年份。這樣就可以編寫適用于不同年份的程序代碼。
在 interval 為“年”(“yyyy”)時,比較 12 月 31 日和來年的 1 月 1 日,雖然實際上只相差一天,DateDiff 返回 1 表示相差一個年份。
MySQL 中 DATEDIFF(date1,date2) 返回起始時間 date1 和結(jié)束時間 date2 之間的天數(shù)。date1 和 date2 為日期或 date-and-time 表達(dá)式。計算時只用到這些值的日期部分。
【實例】使用 DATEDIFF() 函數(shù)計算兩個日期之間的間隔天數(shù),輸入的 SQL 語句和執(zhí)行結(jié)果如下所示。
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)
由運行結(jié)果可知,DATEDIFF() 函數(shù)返回 date1-date2 后的值,因此 DATEDIFF(’2017-11-30’,’2017-11-29’) 的返回值為 1,DATEDIFF(’2017-11-30 23:59:59’,’2017-12-15’) 的返回值為 -15。
到此這篇關(guān)于MySQL DATEDIFF函數(shù)獲取兩個日期的時間間隔的方法的文章就介紹到這了,更多相關(guān)MySQL DATEDIFF日期時間間隔內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. 怎樣才能保護(hù)好SQL Server 數(shù)據(jù)庫2. Oracle數(shù)據(jù)庫備份與恢復(fù)精華資料集錦3. 兩個有用Oracle運算:intersect和minus運算4. MySQL索引背后的數(shù)據(jù)結(jié)構(gòu)及算法原理5. Oracle數(shù)據(jù)庫不完全恢復(fù)實例6. 解讀Oracle數(shù)據(jù)庫后臺進(jìn)程的功能7. 實例講解SQL Server中非常有用EXISTS結(jié)構(gòu)8. 并行方式處理DB2 for iSeries索引(1)9. MySQL case when使用方法實例解析10. Sql Server 壓縮數(shù)據(jù)庫日志文件的方法
