Hi,
The following query will probably work but I think it will be easier to pass 
the minimum date from your application.

SELECT * FROM t WHERE (year(dt)=year(Now()) and dt<Now()) or 
(year(dt)=year(Now())-1 and month(dt)>month(Now()))

Also you might want to check the other Date and Time functions

http://dev.mysql.com/doc/refman/4.1/en/date-and-time-functions.html

I'm sure there is a better solution then the above, and the query will be much 
more optimized if you can send the minimum date from your application like 
this.

SELECT * FROM t WHERE dt>$date;

Shawn's idea is also good - I just saw his response using the LAST_DAY() 
function. 

-- 

Dobromir Velev


On Tuesday 18 October 2005 19:01, grKumaran wrote:
> ----- Original Message -----
> From: "grKumaran" <[EMAIL PROTECTED]>
> To: <mysql@lists.mysql.com>
> Sent: Tuesday, October 18, 2005 16:08
> Subject: query help
>
> : Hello,
> :
> : CREATE TABLE t (
> : dt datetime
> : )
> :
> : Please assume this is the table structure and contains thousands of
>
> records.
>
> : And I want to list them only last 12 months (that mean last 1 year)
>
> records
>
> : exactly.
> :
> : For that I tried using the following query, but it list sometimes 13
>
> months
>
> : when the current date is in the middle of the month.
> :
> : SELECT * FROM t WHERE DATE_ADD(dt, INTERVAL 1 YEAR) >= NOW();
> :
> : I request you to help me.  And thanking you for the consideration.
>
> Thanking you all people. I think I am not clear in last mail, here I go in
> more detail.
>
> Sample records:
> 2004-05-25
> 2004-06-25
> 2004-07-25
> 2004-08-25
> 2004-09-25
> 2004-10-25
> 2004-11-25
> 2004-12-25
> 2005-01-25
> 2005-02-25
> 2005-03-25
> 2005-04-25
> 2005-05-25
>
> Let us assume we are in any date of May month, then I want the records
> starts from June 01 to the current datetime.
>
> Required query should bring the following result
> -- if we are on 25th day or later of May month
> 2004-06-25
> 2004-07-25
> 2004-08-25
> 2004-09-25
> 2004-10-25
> 2004-11-25
> 2004-12-25
> 2005-01-25
> 2005-02-25
> 2005-03-25
> 2005-04-25
> 2005-05-25
>
> -- if we are before 25th day of May.
> 2004-06-25
> 2004-07-25
> 2004-08-25
> 2004-09-25
> 2004-10-25
> 2004-11-25
> 2004-12-25
> 2005-01-25
> 2005-02-25
> 2005-03-25
> 2005-04-25
>
> Once again thanking you all the people. And forgive me for any mistakes in
> my English.
>
> Sincerely,
> R. Kumaran


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

Reply via email to