sql >> Base de Datos >  >> RDS >> Mysql

Fecha de caducidad de PHP

Bueno, no conozco la estructura de su base de datos, pero digamos que es algo como esto:

user_table
-----------------------------------------
user_id   | date_of_redeem | subscription
-----------------------------------------
user1     | 2014-02-01     | 90
user2     | 2014-05-18     | 365
user3     | 2014-07-22     | 180

Entonces, al usar solo declaraciones SQL, podría usar algo, como DATE_SUB. Compare date_of_redeem con la fecha de hoy menos el monto de la suscripción. Si el valor de date_of_redeem es mayor, obtendrá un resultado; de lo contrario, devolverá un conjunto de resultados vacío.

SELECT *
FROM `user_table`
WHERE `date_of_redeem` > DATE_SUB(NOW(), INTERVAL `subscription` DAY) AND `user_id` = 'desired_user_id'

Editar:SQL Fiddle para la consulta anterior:http://sqlfiddle.com/#!2/ f95ea/11 (solo cambie user3 a cualquiera de los ID de usuario para verificar si devuelven algún resultado.

si desea obtener una tabla con todas las fechas de vencimiento de la suscripción, puede hacer algo como esto:

SELECT `user_id` AS `User`, (DATE_ADD(`date_of_redeem`, INTERVAL `subscription` DAY)) AS `Subscription Ends`
FROM `user_table`

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