日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

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()函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。