當前位置:
首頁 >
MySQL datediff()函数
發布時間:2023/12/3
56
豆豆
生活随笔
收集整理的這篇文章主要介紹了
MySQL datediff()函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
轉載自? ?MySQL datediff()函數
MySQL DATEDIFF函數介紹
MySQL?DATEDIFF函數計算兩個DATE,DATETIME或TIMESTAMP值之間的天數。
MySQL?DATEDIFF函數的語法如下:
DATEDIFF(date_expression_1,date_expression_2);DATEDIFF函數接受兩個任何有效日期或日期時間值的參數。如果您傳遞DATETIME或TIMESTAMP值,則DATEDIFF函數僅將日期部分用于計算,并忽略時間部分。
DATEDIFF函數在許多情況下很有用,例如,您可以計算產品需要發送給客戶的間隔時間。
MySQL DATEDIFF示例
我們來看一下使用DATEDIFF函數的一些例子。
示例-1
mysql> SELECT DATEDIFF('2017-08-17','2017-08-17'); +-------------------------------------+ | DATEDIFF('2017-08-17','2017-08-17') | +-------------------------------------+ | 0 | +-------------------------------------+ 1 row in set示例-2
mysql> SELECT DATEDIFF('2017-08-17','2017-08-08'); +-------------------------------------+ | DATEDIFF('2017-08-17','2017-08-08') | +-------------------------------------+ | 9 | +-------------------------------------+ 1 row in set示例-3
mysql> SELECT DATEDIFF('2017-08-08','2017-08-17'); +-------------------------------------+ | DATEDIFF('2017-08-08','2017-08-17') | +-------------------------------------+ | -9 | +-------------------------------------+ 1 row in set請參閱示例數據庫(yiibaidb)中的以下orders表,其結構如下 -
mysql> desc orders; +----------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------------+-------------+------+-----+---------+-------+ | orderNumber | int(11) | NO | PRI | NULL | | | orderDate | date | NO | | NULL | | | requiredDate | date | NO | | NULL | | | shippedDate | date | YES | | NULL | | | status | varchar(15) | NO | | NULL | | | comments | text | YES | | NULL | | | customerNumber | int(11) | NO | MUL | NULL | | +----------------+-------------+------+-----+---------+-------+ 7 rows in set假設使用DATEDIFF函數計算所需日期和訂單發貨日期之間的天數,如下所示:
SELECT orderNumber, DATEDIFF(requiredDate, shippedDate) daysLeft FROMorders ORDER BY daysLeft DESC;執行上面查詢語句,得到以下結果 -
+-------------+----------+ | orderNumber | daysLeft | +-------------+----------+ | 10409 | 11 | | 10410 | 10 | | 10105 | 9 | | 10135 | 9 | | 10190 | 9 | **** 此處省略了一大小波數據 ******** | 10423 | NULL | | 10424 | NULL | | 10425 | NULL | +-------------+----------+ 327 rows in set以下語句將獲取狀態正在處理(In Process)的所有訂單,并計算訂單日期和所需日期之間的天數:
SELECT orderNumber,DATEDIFF(requiredDate, orderDate) remaining_days FROMorders WHEREstatus = 'In Process' ORDER BY remaining_days;執行上面查詢語句,得到以下結果 -
+-------------+----------------+ | orderNumber | remaining_days | +-------------+----------------+ | 10426 | 5 | | 10423 | 6 | | 10425 | 7 | | 10421 | 8 | | 10424 | 8 | | 10420 | 9 | | 10422 | 12 | +-------------+----------------+ 7 rows in set要計算周或月作為間隔時間,可以將DATEDIFF函數的返回值除以7或30,如下查詢語句:
SELECT orderNumber,ROUND(DATEDIFF(requiredDate, orderDate) / 7, 2) as weeks,ROUND(DATEDIFF(requiredDate, orderDate) / 30,2) as months FROMorders WHEREstatus = 'In Process';執行上面查詢語句,得到以下結果 -
+-------------+-------+--------+ | orderNumber | weeks | months | +-------------+-------+--------+ | 10420 | 1.29 | 0.3 | | 10421 | 1.14 | 0.27 | | 10422 | 1.71 | 0.4 | | 10423 | 0.86 | 0.2 | | 10424 | 1.14 | 0.27 | | 10425 | 1 | 0.23 | | 10426 | 0.71 | 0.17 | +-------------+-------+--------+ 7 rows in set請注意,ROUND函數用于舍入結果。
在本教程中,您已經學習了如何使用MySQL?DATEDIFF函數來計算兩個日期值之間的天數。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的MySQL datediff()函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 作家兼平面设计专家史蒂文·海勒谈成功的标
- 下一篇: MySQL date_add()函数