转载自   MySQL datediff()函数

MySQL DATEDIFF函数介绍

MySQL DATEDIFF函数计算两个DATE,DATETIME或TIMESTAMP值之间的天数。

MySQL DATEDIFF函数的语法如下:

DATEDIFF(date_expression_1,date_expression_2);

DATEDIFF函数接受两个任何有效日期或日期时间值的参数。如果您传递DATETIMETIMESTAMP值,则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函数的返回值除以730,如下查询语句:

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()函数相关推荐

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

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

  2. mysql datediff函数怎么用_datediff函数的使用方法是如何的?

    展开全部 1.datediff函数语法用法: 表达式DateDiff(timeinterval,date1,date2 [, firstdayofweek [, firstweekofyear]]) ...

  3. mysql datediff函数怎么用_SQL中datediff函数怎么用?(代码详解)

    在SQL Server中,可以使用T-SQL DATEDIFF()函数返回两个日期之间的差异.它适用于任何可以解析为time.date.smalldatetime.datetime.datetime2 ...

  4. postgresql兼容MySQL datediff函数

    datediff函数兼容解决方案 datediff函数说明 datediff函数返回俩日期相差的天数,如 select datediff('2021-12-21 10:21:23',now()) 在p ...

  5. [Mysql] DATEDIFF函数

    DATEDIFF函数用于返回两个日期的天数 语法格式 DATEDIFF(date1,date2) 参数说明 date1: 比较日期1 date2: 比较日期2 DATEDIFF函数返回date1 - ...

  6. mysql datediff函数怎么用_SQL中datediff函数有哪些用途呢?

    摘要: 下文讲述SQL中datediff函数的用途,如下所示: datediff函数功能说明: datediff用于返回两个日期之间的差值,返回单位可以为(年.月.日.小时.分钟.秒.毫秒等等) 下文 ...

  7. datediff函数(mysql datediff函数)

    用vb程序计算时间差使用标签.文本框.命令按钮完成<br/> Caption = "相差" & DateDiff("yyyy", Text1 ...

  8. MySQL Datediff函数

    Datediff函数,最大的作用就是计算日期差,能计算两个格式相同的日期之间的差值 语法如下: DATEDIFF(datepart,expr1,expr2) #datepart表示返回的日期差值类型, ...

  9. mysql datediff多一天_MySQL DATEDIFF函数获取两个日期的时间间隔的方法

    描述 返回两个日期之间的时间间隔. 语法 DateDiff(interval, date1, date2 [ ,firstdayofweek[ , firstweekofyear]] ) DateDi ...

最新文章

  1. 利用TaskCompletionSource将EAP转换成TAP
  2. 心得---字节流、文件操作、对象序列化
  3. 【MyBatis使用】mapper.xml 文件内<if test>标签判断参数值不等于null和空 当参数值为 0 时筛选条件失效原因分析(源码探究)
  4. 过年装X神器,快速获取 wifi 密码!
  5. mysql数学函数名_MYSQL 常见数学函数说明
  6. 从安装到部署的Cordova iOS应用开发说明
  7. Laravel 打造一个完整的项目
  8. mysql 最左_mysql索引最左匹配原则
  9. Oracle DBA手记3:数据库性能优化与内部原理解析
  10. ibm服务器机 安装系统安装系统安装方法,IBM服务器系统安装图解全攻略
  11. 计算机组成原理学习通题目汇总
  12. 微型计算机原理第三版第五章答案,微机原理第五章习题答案
  13. 没啥用的纯前端打造一个实时 markdown 编辑器
  14. mysql数据库的单引号用法_数据库SQL语句单引号、双引号的用法
  15. MATLAB 线性动态范围调整
  16. 高等教育心理学:学生的个性与社会性的发展
  17. 分布式数据库系统之【结构】
  18. 安卓Android Studio Button按钮background不生效无效问题
  19. P1605 迷宫 java
  20. SCI投稿被退回的常见原因有哪些?

热门文章

  1. session.setAttribute和request.setAttribute的区别
  2. 7-27 家谱处理 (30 分)(详解+map做法)map真香啊
  3. [Nginx]location 指令说明
  4. [Java基础]接口组成(默认方法,静态方法,私有方法)
  5. [Java基础]自动装箱和拆箱
  6. 高等数学上-赵立军-北京大学出版社-题解-练习5.2
  7. [蓝桥杯]最大连续子序列和
  8. 数据结构与算法--链表实现以及应用
  9. 2019-03-10-算法-进化(只出现一次的数字)
  10. A. 树与路径(树论/多项式/分治FFT)