Cóż, nie znam struktury twojej bazy danych, ale powiedzmy, że jest to coś takiego:
user_table
-----------------------------------------
user_id | date_of_redeem | subscription
-----------------------------------------
user1 | 2014-02-01 | 90
user2 | 2014-05-18 | 365
user3 | 2014-07-22 | 180
Tak więc, używając tylko instrukcji SQL, możesz użyć czegoś takiego jak DATE_SUB. Porównaj date_of_redeem z dzisiejszą datą minus kwota subskrypcji. Jeśli wartość date_of_redeem jest wyższa, otrzymasz wynik, w przeciwnym razie zwróci pusty zestaw wyników.
SELECT *
FROM `user_table`
WHERE `date_of_redeem` > DATE_SUB(NOW(), INTERVAL `subscription` DAY) AND `user_id` = 'desired_user_id'
Edycja:SQL Fiddle dla powyższego zapytania:http://sqlfiddle.com/#!2/ f95ea/11
(po prostu zmień user3
do dowolnego identyfikatora użytkownika, aby sprawdzić, czy zwracają jakieś wyniki.
jeśli chcesz otrzymać tabelę ze wszystkimi datami wygaśnięcia subskrypcji, możesz zrobić coś takiego:
SELECT `user_id` AS `User`, (DATE_ADD(`date_of_redeem`, INTERVAL `subscription` DAY)) AS `Subscription Ends`
FROM `user_table`
SQL Fiddle do tego:http://sqlfiddle.com/#!2/f95ea/9