MySQL DATEDIFF函数

时间:2019-11-20 08:52:22  来源:igfitidea点击:

简介:在本教程中,您将学习如何使用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函数的示例。

SELECT DATEDIFF('2011-08-17','2011-08-17'); --  0 day
SELECT DATEDIFF('2011-08-17','2011-08-08'); --  9 days
SELECT DATEDIFF('2011-08-08','2011-08-17'); -- -9 days

请参见示例数据库中的以下订单表。

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

SELECT 
    orderNumber, 
    DATEDIFF(requiredDate, shippedDate) daysLeft
FROM
    orders
ORDER BY daysLeft DESC;

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

SELECT 
    orderNumber,
    DATEDIFF(requiredDate, orderDate) remaining_days
FROM
    orders
WHERE
    status = 'In Process'
ORDER BY remaining_days;

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

SELECT 
    orderNumber,
    ROUND(DATEDIFF(requiredDate, orderDate) / 7, 2),
    ROUND(DATEDIFF(requiredDate, orderDate) / 30,2)
FROM
    orders
WHERE
    status = 'In Process';

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

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