Mysql
 sql >> Database >  >> RDS >> Mysql

Data di scadenza del PHP

Bene, non conosco la struttura del tuo database, ma diciamo che è qualcosa del genere:

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

Quindi, usando solo istruzioni SQL, potresti usare qualcosa, come DATE_SUB. Confronta la data_di_riscatto con la data odierna meno l'importo dell'abbonamento. Se il valore di date_of_redeem è maggiore, otterresti un risultato, altrimenti restituirebbe un set di risultati vuoto.

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

Modifica:SQL Fiddle per la query precedente:http://sqlfiddle.com/#!2/ f95ea/11 (basta cambiare user3 a uno qualsiasi degli ID utente per verificare se restituiscono risultati.

se desideri ottenere un tavolo con tutte le date di scadenza dell'abbonamento, puoi fare qualcosa del genere:

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

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