Mysql
 sql >> Base de données >  >> RDS >> Mysql

Date d'expiration PHP

Eh bien, je ne connais pas la structure de votre base de données, mais disons que c'est quelque chose comme ça :

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

Ainsi, en utilisant uniquement des instructions SQL, vous pouvez utiliser quelque chose, comme DATE_SUB. Comparez la date_of_redeem à la date d'aujourd'hui moins le montant de l'abonnement. Si la valeur de date_of_redeem est supérieure, vous obtiendrez un résultat, sinon il renverra un ensemble de résultats vide.

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

Modifier :SQL Fiddle pour la requête ci-dessus :http://sqlfiddle.com/#!2/ f95ea/11 (il suffit de changer user3 à l'un des ID utilisateur pour vérifier s'ils renvoient des résultats.

si vous souhaitez obtenir un tableau avec toutes les dates d'expiration des abonnements, vous pouvez faire quelque chose comme ceci :

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

SQL Fiddle pour cela :http://sqlfiddle.com/#!2/f95ea/9