MySQL DATEDIFF Function

摘要:在本教程中,您将学习如何使用MySQL DATEDIFF函数来计算两个日期值之间的天数。

MySQL DATEDIFF函数简介

MySQL DATEDIFF函数计算两个DATEDATETIMETIMESTAMP值之间的天数。

MySQL DATEDIFF函数的语法如下:

DATEDIFF(date_expression_1,date_expression_2);Code language: SQL (Structured Query Language) (sql)

DATEDIFF函数接受两个参数,它们可以是任何有效的日期或日期时间值。如果传递DATETIMETIMESTAMP值, DATEDIFF函数仅采用日期部分进行计算,而忽略时间部分。

DATEDIFF函数在许多情况下都很有用,例如,您可以计算产品需要运送给客户的天数间隔

MySQL DATEDIFF示例

让我们看一下使用DATEDIFF函数的一些示例。

SELECT DATEDIFF('2011-08-17','2011-08-17'); --  0 dayCode language: SQL (Structured Query Language) (sql)

试试看

SELECT DATEDIFF('2011-08-17','2011-08-08'); --  9 days
Code language: SQL (Structured Query Language) (sql)

试试看

SELECT DATEDIFF('2011-08-08','2011-08-17'); -- -9 daysCode language: SQL (Structured Query Language) (sql)

试试看

请参阅示例数据库中的以下orders表。

订单表

要计算订单的要求日期和发货日期之间的天数,请使用DATEDIFF函数,如下所示:

SELECT 
    orderNumber, 
    DATEDIFF(requiredDate, shippedDate) daysLeft
FROM
    orders
ORDER BY daysLeft DESC;Code language: SQL (Structured Query Language) (sql)

试试看

MySQL DATEDIFF 函数示例

以下语句获取所有状态为处理中的订单,并计算订购日期和所需日期之间的天数:

SELECT 
    orderNumber,
    DATEDIFF(requiredDate, orderDate) remaining_days
FROM
    orders
WHERE
    status = 'In Process'
ORDER BY remaining_days;Code language: SQL (Structured Query Language) (sql)

试试看

MySQL DATEDIFF 函数示例剩余天数

要计算周或月的间隔,您可以将DATEDIFF函数的返回值除以 7 或 30,如以下查询所示:

SELECT 
    orderNumber,
    ROUND(DATEDIFF(requiredDate, orderDate) / 7, 2),
    ROUND(DATEDIFF(requiredDate, orderDate) / 30,2)
FROM
    orders
WHERE
    status = 'In Process';Code language: SQL (Structured Query Language) (sql)

试试看

MySQL DATEDIFF 示例

请注意, ROUND函数用于对结果进行舍入。

在本教程中,您学习了如何使用 MySQL DATEDIFF函数来计算两个日期值之间的天数。

本教程有帮助吗?