sql >> Database >  >> RDS >> Mysql

PHP-vervaldatum

Nou, ik ken je databasestructuur niet, maar laten we zeggen dat het ongeveer zo is:

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

Dus als je alleen SQL-instructies gebruikt, zou je iets kunnen gebruiken, zoals DATE_SUB. Vergelijk de date_of_redeem met de datum van vandaag minus het abonnementsbedrag. Als de waarde van de date_of_redeem hoger is, zou je een resultaat krijgen, anders zou het een lege resultatenset opleveren.

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

Bewerken:SQL Fiddle voor de bovenstaande query:http://sqlfiddle.com/#!2/ f95ea/11 (verander gewoon user3 naar een van de gebruikers-ID's om te controleren of ze resultaten opleveren.

als je een tafel wilt hebben met alle vervaldata van het abonnement, dan kun je zoiets als dit doen:

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

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



  1. Select invoerveld vullen met waarde uit mysql

  2. freeTDS gebruikt zijn config niet

  3. juiste syntaxis om te gebruiken in de buurt van '?'

  4. mysql-failover:hoe kiest u slaaf als nieuwe meester?