sql 日期相减DATEDIFF()返回两日期天数

sql 日期相减DATEDIFF()返回两日期天数

定义和用法
DATEDIFF() 函数返回两个日期之间的天数。

语法
DATEDIFF(date1,date2)date1 和 date2 参数是合法的日期或日期/时间表达式。

注释:只有值的日期部分参与计算。

DATEDIFF(expr1,expr2): returns expr1 - expr2 as a value in days

实例一

SELECT DATEDIFF('2008-12-30','2008-12-29') AS DiffDate

mysql教程>
mysql> SELECT DATEDIFF('1997-12-31 23:59:59','1997-12-30');
+----------------------------------------------+
| DATEDIFF('1997-12-31 23:59:59','1997-12-30') |
+----------------------------------------------+
|                                            1 |
+----------------------------------------------+
1 row in set (0.00 sec)

mysql>
mysql> SELECT DATEDIFF('1997-11-30 23:59:59','1997-12-31');
+----------------------------------------------+
| DATEDIFF('1997-11-30 23:59:59','1997-12-31') |
+----------------------------------------------+
|                                          -31 |
+----------------------------------------------+
1 row in set (0.00 sec)

查找两字段之间的日期

mysql> CREATE TABLE Employee(
    ->     id            int,
    ->     first_name    VARCHAR(15),
    ->     last_name     VARCHAR(15),
    ->     start_date    DATE,
    ->     end_date      DATE,
    ->     salary        FLOAT(8,2),
    ->     city          VARCHAR(10),
    ->     description   VARCHAR(15)
    -> );
Query OK, 0 rows affected (0.03 sec)

mysql>
mysql>
mysql> insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)
    ->              values (1,'Jason',    'Martin',  '19960725',  '20060725', 1234.56, 'Toronto',  'Programmer');
Query OK, 1 row affected (0.00 sec)

mysql>
mysql> insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)
    ->               values(2,'Alison',   'Mathews',  '19760321', '19860221', 6661.78, 'Vancouver','Tester');
Query OK, 1 row affected (0.00 sec)

mysql>
mysql> insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)
    ->               values(3,'James',    'Smith',    '19781212', '19900315', 6544.78, 'Vancouver','Tester');
Query OK, 1 row affected (0.00 sec)

mysql>
mysql> insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)
    ->               values(4,'Celia',    'Rice',     '19821024', '19990421', 2344.78, 'Vancouver','Manager');
Query OK, 1 row affected (0.00 sec)

mysql>
mysql> insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)
    ->               values(5,'Robert',   'Black',    '19840115', '19980808', 2334.78, 'Vancouver','Tester');
Query OK, 1 row affected (0.00 sec)

mysql>
mysql> insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)
    ->               values(6,'Linda',    'Green',    '19870730', '19960104', 4322.78,'New York',  'Tester');
Query OK, 1 row affected (0.00 sec)

mysql>
mysql> insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)
    ->               values(7,'David',    'Larry',    '19901231', '19980212', 7897.78,'New York',  'Manager');
Query OK, 1 row affected (0.00 sec)

mysql>
mysql> insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)
    ->               values(8,'James',    'Cat',     '19960917',  '20020415', 1232.78,'Vancouver', 'Tester');
Query OK, 1 row affected (0.00 sec)

mysql>
mysql> select * from Employee;
+------+------------+-----------+------------+------------+---------+-----------+-------------+
| id   | first_name | last_name | start_date | end_date   | salary  | city      | description |
+------+------------+-----------+------------+------------+---------+-----------+-------------+
|    1 | Jason      | Martin    | 1996-07-25 | 2006-07-25 | 1234.56 | Toronto   | Programmer  |
|    2 | Alison     | Mathews   | 1976-03-21 | 1986-02-21 | 6661.78 | Vancouver | Tester      |
|    3 | James      | Smith     | 1978-12-12 | 1990-03-15 | 6544.78 | Vancouver | Tester      |
|    4 | Celia      | Rice      | 1982-10-24 | 1999-04-21 | 2344.78 | Vancouver | Manager     |
|    5 | Robert     | Black     | 1984-01-15 | 1998-08-08 | 2334.78 | Vancouver | Tester      |
|    6 | Linda      | Green     | 1987-07-30 | 1996-01-04 | 4322.78 | New York  | Tester      |
|    7 | David      | Larry     | 1990-12-31 | 1998-02-12 | 7897.78 | New York  | Manager     |
|    8 | James      | Cat       | 1996-09-17 | 2002-04-15 | 1232.78 | Vancouver | Tester      |
+------+------------+-----------+------------+------------+---------+-----------+-------------+
8 rows in set (0.00 sec)

mysql>
mysql>
mysql>
mysql> SELECT *
    -> FROM employee
    -> WHERE (DATEDIFF(curdate(),start_date)/365.25) >55;
Empty set (0.00 sec)

时间: 2024-10-29 06:47:49

sql 日期相减DATEDIFF()返回两日期天数的相关文章

JavaScript日期相减得到第二个日期

  JavaScript日期相减计算,然后得到第二个日期.在平时遇到时间加减的机率也是比较大,以下JS函数可完成指定天数减去某天数,计算出另外一个日期,在很多地方都可以用到.需要的可看下函数代码,里面有用法示例,后面还有参数说明. 参数说明:本函数牵扯两个参数:dd:需要进行计算的日期;dadd:减去的天数,比如2天.3天.

Eexcel日期相减月数的计算公式和案例

  文章介绍excel日期相减月数的公式运用,主要使用到DATEDIF函数来得到两个日期相隔月份. excel日期相减得到月数,我们通常使用DATEDIF函数来得到两个日期相隔月份. 如下面的excel实例:如何实现两个日期相减得到月份,日期相减需要考虑到跨年的日期情况. 比如C列是发货日期,D列是今日日期,需要在E列计算两个日期相减之后的月份间隔.我们在E2单元格输入公式:=DATEDIF(C2,D2,"m")&"月",即可得到日期相减后的月数. exce

JS 两日期相减,获得天数的小例子(兼容IE,FF)

这篇文章介绍了两日期相减,获得天数的小例子,有需要的朋友可以参考一下   复制代码 代码如下: function GetDay() { var arrDate, objDate1, objDate2, intDays; objDate1 = new Date(); objDate2 = new Date(); arrDate = $("#开始日期").val().split("-"); objDate1.setFullYear(arrDate[0], arrDate

紧急求助(日期相减,比较)如何解决。望高手帮忙。。

问题描述 stringuserid="";stringisexpire="";stringtoday="";floatfine;publicvoidstore(){userid=this.Useridtxt.Text;SqlConnectionconn=db.createcon();conn.Open();stringsql="select*fromReturn_finewhereUserid='"+this.userid+&

sql server日期相减 的实现详解_MsSql

复制代码 代码如下: select datediff(year, 开始日期,结束日期);     --两日期间隔年select datediff(quarter, 开始日期,结束日期); --两日期间隔季select datediff(month, 开始日期,结束日期); --两日期间隔月select datediff(day, 开始日期,结束日期); --两日期间隔天select datediff(week, 开始日期,结束日期); --两日期间隔周select datediff(hour,

sql server日期相减 的实现详解

复制代码 代码如下: select datediff(year, 开始日期,结束日期);     --两日期间隔年 select datediff(quarter, 开始日期,结束日期); --两日期间隔季 select datediff(month, 开始日期,结束日期); --两日期间隔月 select datediff(day, 开始日期,结束日期); --两日期间隔天 select datediff(week, 开始日期,结束日期); --两日期间隔周 select datediff(h

在php中有没有日期相减的函数

函数 直接相减是不正确的,你需要这样来做: **得到目前的日期和时间 在Unix中,时间的表示方式为计算从1970年1月1日零时起所过去的秒数,这称为UNIX 时间戳(Unix Epoch). 如果我们有这样一段的代码: <? echo time(); ?> 将返回值958905820 而此时的时间为2000年5月21日12时43分. 你也许会说这相当不错.当这对我毫无帮助,或者只有一点帮助.在PHP中,对日期处理的函数都必须用到由time()返回的时间戳值.同时,由于PHP在Unix和Win

jsp 时间相减-jsp中两个string类型的时间怎么相减,回答的好的提高悬赏

问题描述 jsp中两个string类型的时间怎么相减,回答的好的提高悬赏 java.util.Date endDate3 = new java.util.Date(iYear,iMonth,iDate-iDay+7+ (iNext*7));//根据系统时间获取的时间 java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM-dd"); String sEndDate3 = formatt

JS 两日期相减,获得天数的小例子(兼容IE,FF)_javascript技巧

复制代码 代码如下:    function GetDay() {    var arrDate, objDate1, objDate2, intDays;     objDate1 = new Date();    objDate2 = new Date();     arrDate = $("#开始日期").val().split("-");    objDate1.setFullYear(arrDate[0], arrDate[1], arrDate[2]);