mysql sql语句 datediff_MySQL数据库之MySQL DATEDIFF 函数

本文主要向大家介绍了MySQL数据库之MySQL DATEDIFF 函数 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助。

Summary: in this tutorial, you will learn how to use the MySQL DATEDIFF function to calculate the number of days between two date values.

MySQL DATEDIFF function syntax

MySQL DATEDIFF function calculate the number of days between two DATE, DATETIME, or TIMESTAMP values. The DATEDIFF function is useful in many cases e.g., you can calculate an interval in days that the products need to ship to a customer.

The syntax of the MySQL DATEDIFF function is as follows:

DATEDIFF(date_expression_1,date_expression_2)

The DATEDIFF function accepts two arguments which are two valid DATE, DATETIME or TIMESTAMP values. You can pass expressions that evaluate to DATE,DATETIME or TIMSTAMP values to the DATEDIFF function.

The DATEDIFF function returns the number of days between two DATE values i.e., date_expression_1 - date_expression_2.

Notice that the DATEDIFF function uses only date parts of the expressions for calculation. It ignores the time part if you pass the DATETIME or TIMESTAMP values.

MySQL DATEDIFF function examples

Let’s take a look at some  examples of using the   DATEDIFF function.

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

To calculate the number of days between required date and shipped date for orders in the orders table, you use the DATEDIFF function as follows:

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

The following statement gets all orders whose statuses are in process and calculates the number of days between the ordered date and required date:

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

For calculating an interval in week or month, you can divide the returned value of the DATEDIFF function by 7 or 30 as the following query:

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

本文由职坐标整理并发布,希望对同学们学习MySQL有所帮助,更多内容请关注职坐标数据库MySQL数据库频道!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值