On Fri, Oct 17, 2008 at 2:19 PM, Rob Wultsch <[EMAIL PROTECTED]> wrote:
> > On Fri, Oct 17, 2008 at 2:15 PM, Ian Christian <[EMAIL PROTECTED]>wrote: > >> 2008/10/17 Rob Wultsch <[EMAIL PROTECTED]>: >> > On Fri, Oct 17, 2008 at 1:33 PM, Rene Fournier <[EMAIL PROTECTED]> >> wrote: >> > >> >> Okay, I realize that query won't work, but that's essentially want I >> want >> >> to do: >> >> >> >> Add four months to the current date, then return the first day of that >> >> month, e.g.: >> >> >> >> floor ( 2008-10-16 + 4 months ) = 2009-02-1 >> >> >> >> Is there a nice SQL way of achieving this? >> >> >> >> ...Rene >> >> >> > >> > SELECT date(now() + INTERVAL 4 MONTH - INTERVAL day(now())-1 DAY); >> >> Be aware that only 1 suggested answer was correct :) >> >> mysql> SELECT date( date("2008-10-31") + INTERVAL 4 MONTH - INTERVAL >> day("2008-10-31")-1 DAY) as d\G >> *************************** 1. row *************************** >> d: 2009-01-29 >> >> mysql> select cast(date_format( date("2008-10-31") + interval 4 >> month,"%Y-%m-01") as date) as d \G >> *************************** 1. row *************************** >> d: 2009-02-01 >> > > I should have said: SELECT DATE( NOW() )-INTERVAL day( NOW() )-1 DAY + INTERVAL 4 MONTH; but yeah, the date_format is a heck of a lot cleaner. Learn something new everyday... -- Rob Wultsch