On Thu, Jan 28, 2010 at 6:42 AM, Justin Giboney <[email protected]> wrote:
> See if this logic helps you, it will get you close, you may need to refine it
>
> basically it finds out how many years it has been since the person
> signed up, subtracts 3 from it, then adds that number to the sign up
> date and gets all records after that new date
>
> SELECT * FROM Users u, User_Actions ua
> WHERE u.id = ua.user_id
> AND ua.date >= ADDDATE(u.sign_up_date, INTERVAL (YEAR(NOW()) -
> YEAR(u.sign_up_date)) - 3) YEAR)

Simple simplification here:

SELECT * FROM Users u, User_Actions ua
WHERE u.id = ua.user_id
AND ua.date >= NOW() - INTERVAL 3 YEAR;

This date math syntax is easier to read and understand.  It doesn't
require ADDDATE or anything.  Just a simple + or -

_______________________________________________

UPHPU mailing list
[email protected]
http://uphpu.org/mailman/listinfo/uphpu
IRC: #uphpu on irc.freenode.net

Reply via email to