Use  SELECT DATEDIFF('new_date', 'old_date');


mysql> SELECT DATEDIFF('2006-04-01','2006-04-01');
+-------------------------------------+
| DATEDIFF('2006-04-01','2006-04-01') |
+-------------------------------------+
|                                   0 |
+-------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT DATEDIFF('2006-04-01','2007-04-01');
+-------------------------------------+
| DATEDIFF('2006-04-01','2007-04-01') |
+-------------------------------------+
|                                -365 |
+-------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT DATEDIFF('2006-04-01','2005-04-01');
+-------------------------------------+
| DATEDIFF('2006-04-01','2005-04-01') |
+-------------------------------------+
|                                 365 |
+-------------------------------------+
1 row in set (0.00 sec)


DATEDIFF(expr,expr2)

DATEDIFF() returns the number of days between the start date 
expr and the end date expr2. expr and expr2 are date or 
date-and-time expressions. Only the date parts of the values 
are used in the calculation.

mysql> SELECT DATEDIFF('1997-12-31 23:59:59','1997-12-30');
        -> 1
mysql> SELECT DATEDIFF('1997-11-30 23:59:59','1997-12-31');
        -> -31

Regards

Keith

In theory, theory and practice are the same;
in practice they are not.


On Sat, 1 Apr 2006, Rhino wrote:

> To: Mike Blezien <[EMAIL PROTECTED]>,
>     Jorrit Kronjee <[EMAIL PROTECTED]>, mysql@lists.mysql.com
> From: Rhino <[EMAIL PROTECTED]>
> Subject: Re: Getting number days between 2 dates
> 
> 
> ----- Original Message ----- From: "Mike Blezien"
> <[EMAIL PROTECTED]>
> To: "Jorrit Kronjee" <[EMAIL PROTECTED]>; <mysql@lists.mysql.com>
> Sent: Saturday, April 01, 2006 9:00 AM
> Subject: Re: Getting number days between 2 dates
> 
> 
> > Jorrit,
> > 
> > ----- Original Message ----- From: "Jorrit Kronjee"
> > <[EMAIL PROTECTED]>
> > To: <mysql@lists.mysql.com>
> > Sent: Saturday, April 01, 2006 7:46 AM
> > Subject: Re: Getting number days between 2 dates
> > 
> > 
> > > Mike Blezien wrote:
> > > > Hello,
> > > > 
> > > > I'm sure this is a simple query but haven't come up with a
> > > > good approach. Need to get the number of days between two
> > > > dates. IE: today's date: (2006-04-01 - 2006-03-05)
> > > > need to calculate the number of days between these dates..
> > > > what is the best query statement to accomplish this?
> > > > 
> > > > TIA,
> > 
> > > Mike,
> > > You probably want to use something like this:
> > > 
> > > SELECT TO_DAYS('2006-03-15') - TO_DAYS('2006-03-01');
> > 
> > Thanks, that works, also using the DAYOFYEAR produces the same
> > results as I just found :)
> > 
> > appreciate the help
> > 
> I'd be careful with DAYOFYEAR() if I were you.
> 
> DAYOFYEAR() only tells you which day it is within a given year. If you try
> to use DAYOFYEAR to tell the difference in days between dates that are in
> different years, you are certainly going to get the wrong answer. For
> instance, DAYOFYEAR(2006-04-01) - DAYOFYEAR(2005-04-01) gives an answer of
> 0 days when the correct answer is 365.
> 
> A better choice for getting the difference between two dates in days is
> probably DATEDIFF() or TO_DAYS().
> 
> --
> Rhino 

-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to