MySQL datediff()函数

转载自   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函数来计算两个日期值之间的天数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/326379.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用 Visual Studio 对源代码文件进行哈希处理以确保文件完整性

对所有编译的软件语言来说,将人类可读代码转换成计算机可读代码都是一项软件保障挑战: 用户如何有信心相信在其计算机上运行的软件程序是根据开发者创建的同一源代码文件生成的呢? 这不一定,即使源代码文件经过行业专家评审&#…

php 输出01,php基础01_thinkphp输出Hello World-Go语言中文社区

用phpstorm和mamp搭建好php开发环境后,就来体验一下thinkPHP的输出过程1.下载thinkphp3.2.3版本框架,将其放入本地主机MyPhp文件夹中thinkphp3.2.3所包含的目录内容如下:目录对应文件为:composer.json:PHP组件的依赖管理器index.p…

人脸识别活体检测之眨眨眼和张张嘴

【这段时间有点忙,终于截止今天2018.06.22完成了人脸识别的最后一道程序——活体检测之眨眨眼和张张嘴】 关于人脸识别的内容我之前也写过好几篇博文,其中有: {java实现人脸识别源码} {C#winforms实现windows窗体人脸识别} {人脸识别活体检测…

工作效益问题

图解 代码实现 package com.kuang.study.lanqiao;public class Main {public static void main(String[] args) {int n8;//机器人个数int[] pre{0,0,0,0,1,0,2,3,5};//选择这个工作后的其那句最近工作下标int[] profit {5,1,8,4,6,3,2,4}; //工作收益int opt[]new int[n1];op…

amazon php 空间,(四)Amazon Lightsail 部署LAMP应用程序之扩展PHP前端

扩展PHP前端既然PHP前端和数据库是分开的,您将为Web层添加可伸缩性和容错性: 在以下步骤,您将获取Web前端实例的快照,并从该快照部署另外2个Web层实例。最终,您将在三个Web实例前面添加一个负载均衡器。至此,您将拥有一…

人脸识别活体检测之张张嘴和眨眨眼——Landmark

/** * Title: Landmark.java * Package org.entity * Description: TODO该方法的主要作用: * author A18ccms A18ccms_gmail_com * date 2018-6-8 上午10:39:01 * blog https://blog.csdn.net/qq_34137397 * version V1.0 */ package org.entity;import java.…

相邻数字+(正月点灯笼的动态规划2)(递归+DP)---JAVA

思路分析 代码实现 递归实现 package com.kuang.study.lanqiao;public class Main {public static void main(String[] args) {int arr[]{1,2,4,1,7,8,3};int max d(arr,arr.length-1);System.out.println(max);}public static int d(int[] arr,int n){if(n0){return arr[0]…

.NET Core Tools 1.0 版本

与上周发布的Visual Studio 2017一起,微软还发布了.NET Core Tools 1.0。这些工具对所有.NET核心开发人员都非常有用,无论他们使用VS2017、Visual Studio for Mac、Visual Studio Code,还是基于他们自己选择的非微软IDE。 对于想要使用.NET C…

MySQL day()函数

转载自 MySQL day()函数 MySQL DAY函数简介 DAY函数返回给定日期的月份的日期部分。下面显示DAY函数的语法: DAY(date);DAY函数接受一个参数,它是您要获取月份日期的日期值。如果date参数为零,例如0000-00-00,则DAY函数返回0&…

matlab 的excel 对象,MATLAB 中的 COM 对象

COM concepts and an overview of COM support in MATLAB.Examples that show how to use COM interface with MATLAB.Before using COM objects, you must register their servers.如何创建 Microsoft 控件和 COM 服务器对象Pass data to and handle data from a COM object.L…

人脸识别活体检测之张张嘴和眨眨眼——Json_Parsing

/** * Title: Json_Parsing.java * Package org.util * Description: TODO该方法的主要作用: * author A18ccms A18ccms_gmail_com * date 2018-6-9 上午10:33:48 * blog https://blog.csdn.net/qq_34137397 * version V1.0 */ package org.util;import java.…

MySQL date_add()函数​​​​​​​

转载自 MySQL date_add()函数 MySQL DATE_ADD函数简介 DATE_ADD函数将间隔时间添加到DATE或DATETIME值。 下面说明了DATE_ADD函数的语法: DATE_ADD(start_date, INTERVAL expr unit);DATE_ADD函数有两个参数: start_date是DATE或DATETIME的起始值。…

交换数组中的两个元素

方法一 public static void swap(int[] arr,int i,int j){arr[i]arr[i]^arr[j];arr[j]arr[i]^arr[j];arr[i]arr[i]^arr[j];}方法二 public static void swap(int[] arr,int i,int j){int temparr[i];arr[i]arr[j];arr[j]temp;}

塑造Visual Studio的未来

类似于Windows Insider计划,Microsoft为Visual Studio也启动了一项提前体验计划。该计划被命名为Visual Studio预览,它允许任何对Visual Studio未来感兴趣的用户都能参与其中。Microsoft已经为Visual Studio的三个主要版本(社区版、专业版、企…

php划分年龄段,儿童时期是怎样划分年龄阶段的

儿童时期是人生开始的一个重要年龄阶段,一般是指从出生到15周岁。儿童时期生理、心理发育很快,不同的月龄和不同的年龄具有不同的生理与心理特征。因此,根据儿童各年龄时期的胜利与心理特征和不同的发展规律,进一步将儿童时期划分…

MySQL date_sub()函数

转载自 MySQL date_sub()函数 MySQL DATE_SUB函数简介 DATE_SUB()函数从DATE或DATETIME值中减去时间值(或间隔)。 下面说明了DATE_SUB()函数的语法: DATE_SUB(start_date,INTERVAL expr unit);DATE_SUB()函数接受两个参数: start_date是DATE或DATET…

php无限极菜单,无限极菜单的实现

摘要&#xff1a;<?php /** * Created by PhpStorm. * User: 12757 * Date: 2019/4/16 * Time: 18:32 */namespace app\admins\controller;use think\Controller;use Util\SysDb;class Menu extends Base{ public func/*** Created by PhpStorm.* User: 12757* Date: 20…

2016蓝桥杯省赛---java---C---8(冰雹数)

题目描述 任意给定一个正整数N&#xff0c; 如果是偶数&#xff0c;执行&#xff1a; N / 2 如果是奇数&#xff0c;执行&#xff1a; N * 3 1生成的新的数字再执行同样的动作&#xff0c;循环往复。通过观察发现&#xff0c;这个数字会一会儿上升到很高&#xff0c; 一会儿又…

临时表的软更新

当今绝大多数开发者都使用经典关系数据库来存储数据。尽管取而代之的无架构数据存储&#xff08;统称为“NoSQL 存储”&#xff09;在各种业务方案中都证明相当有效&#xff0c;但经典关系数据库是沿用了几十年且目前仍适用的方法。每次更新现有表记录时&#xff0c;都不会自动…

人脸识别活体检测之张张嘴和眨眨眼——readme

人脸检测返回参数详情 ———————————————————————————————————————————————————————————————————————————————————————————————— 字段 必选 类型 说明 face_num 是 int 检测…