MySQL - DATEDIFF() 函式



MySQL 的DATEDIFF()函式用於計算兩個日期之間的天數差。它接受兩個日期表示式作為引數,並返回它們之間相差的天數。

如果兩個引數中的任何一個為NULL,則此函式將返回NULL值。

語法

以下是MySQL DATEDIFF()函式的語法:

DATEDIFF(end_date, start_date);

引數

此方法接受兩個引數。具體描述如下:

  • end_date: 我們要計算差值的日期。

  • start_date: 我們要計算差值的起始日期。

返回值

此函式返回一個整數,表示end_date和start_date之間的天數差。

示例

在下面的示例中,我們使用MySQL DATEDIFF()函式來計算指定日期之間的差值:

SELECT DATEDIFF('2023-09-05', '2023-09-05') As Result;

輸出

這將產生以下結果:

結果
365

示例

以下查詢計算當前日期與指定日期之間的天數差:

SELECT DATEDIFF(CURDATE(), '2023-10-22') As Result;

輸出

輸出如下:

結果
31

示例

在下面的示例中,讓我們使用CREATE TABLE語句建立一個名為ORDERS的表:

CREATE TABLE ORDERS (
   OID INT NOT NULL,
   DATE VARCHAR (20) NOT NULL,
   CUSTOMER_ID INT NOT NULL,
   AMOUNT DECIMAL (18, 2)
);

現在,使用INSERT語句將以下記錄插入ORDERS表中:

INSERT INTO ORDERS VALUES 
(102, '2009-10-08 00:00:00', 3, 3000.00),
(100, '2009-10-08 00:00:00', 3, 1500.00),
(101, '2009-11-20 00:00:00', 2, 1560.00),
(103, '2008-05-20 00:00:00', 4, 2060.00);

執行以下查詢以獲取上面建立的表中的所有插入記錄:

Select * From ORDERS;

以下是ORDERS表:

OID DATE CUSTOMER_ID AMOUNT
102 2009-10-08 00:00:00 3 3000.00
100 2009-10-08 00:00:00 3 1500.00
101 2009-11-20 00:00:00 2 1560.00
103 2008-05-20 00:00:00 4 2060.00

在這裡,我們使用DATEDIFF()函式計算當前日期與DATE列中的datetime值之間的天數差:

SELECT OID, DATE, DATEDIFF(CURDATE(), DATE) as Result 
FROM ORDERS;

輸出

輸出如下所示:

OID DATE 結果
102 2009-10-08 00:00:00 123778
100 2009-10-08 00:00:00 123778
101 2009-11-20 00:00:00 122746
103 2008-05-20 00:00:00 135922
廣告
© . All rights reserved.