Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

data de expiração do PHP


Bem, eu não conheço sua estrutura de banco de dados, mas digamos que seja algo assim:
user_table
-----------------------------------------
user_id   | date_of_redeem | subscription
-----------------------------------------
user1     | 2014-02-01     | 90
user2     | 2014-05-18     | 365
user3     | 2014-07-22     | 180

Então, usando apenas instruções SQL, você pode usar algo, como DATE_SUB. Compare o date_of_redeem com a data de hoje menos o valor da assinatura. Se o valor de date_of_redeem for maior, você obterá um resultado, caso contrário, retornará um conjunto de resultados vazio.
SELECT *
FROM `user_table`
WHERE `date_of_redeem` > DATE_SUB(NOW(), INTERVAL `subscription` DAY) AND `user_id` = 'desired_user_id'

Edite:SQL Fiddle para a consulta acima:http://sqlfiddle.com/#!2/ f95ea/11 (basta alterar user3 para qualquer um dos IDs de usuário para verificar se eles retornam algum resultado.

se você deseja obter uma tabela com todas as datas de expiração da assinatura, pode fazer algo assim:
SELECT `user_id` AS `User`, (DATE_ADD(`date_of_redeem`, INTERVAL `subscription` DAY)) AS `Subscription Ends`
FROM `user_table`

SQL Fiddle para isso:http://sqlfiddle.com/#!2/f95ea/9