Е, не знам вашата структура на базата данни, но да кажем, че е нещо подобно:
user_table
-----------------------------------------
user_id | date_of_redeem | subscription
-----------------------------------------
user1 | 2014-02-01 | 90
user2 | 2014-05-18 | 365
user3 | 2014-07-22 | 180
Така че, като използвате само SQL изрази, можете да използвате нещо, като DATE_SUB. Сравнете date_of_redeem с днешната дата минус сумата на абонамента. Ако стойността на date_of_redeem е по-висока, тогава ще получите резултат, в противен случай ще върне празен набор от резултати.
SELECT *
FROM `user_table`
WHERE `date_of_redeem` > DATE_SUB(NOW(), INTERVAL `subscription` DAY) AND `user_id` = 'desired_user_id'
Редактиране:SQL Fiddle за горната заявка:http://sqlfiddle.com/#!2/ f95ea/11
(просто променете user3
към някой от потребителските идентификатори, за да проверите дали връщат резултати.
ако искате да получите таблица с всички дати на изтичане на абонамента, тогава можете да направите нещо подобно:
SELECT `user_id` AS `User`, (DATE_ADD(`date_of_redeem`, INTERVAL `subscription` DAY)) AS `Subscription Ends`
FROM `user_table`
SQL Fiddle за това:http://sqlfiddle.com/#!2/f95ea/9