sql >> Databáze >  >> RDS >> Mysql

Datum vypršení platnosti PHP

No, neznám strukturu vaší databáze, ale řekněme, že je to něco takového:

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

Takže s použitím pouze příkazů SQL můžete použít něco, například DATE_SUB. Porovnejte date_of_redeem s dnešním datem mínus částka předplatného. Pokud je hodnota date_of_redeem vyšší, dostanete výsledek, jinak by vrátil prázdnou sadu výsledků.

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

Upravit:SQL Fiddle pro výše uvedený dotaz:http://sqlfiddle.com/#!2/ f95ea/11 (stačí změnit user3 na kterékoli z uživatelských ID a zkontrolujte, zda vracejí nějaké výsledky.

pokud byste chtěli získat tabulku se všemi daty vypršení platnosti předplatného, ​​můžete udělat něco takového:

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

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



  1. Problémy s duplicitními daty a jak je opravit

  2. Vestavěné testy PostgreSQL pro Java JUnit

  3. Jak Asind() funguje v PostgreSQL

  4. Boolean vs tinyint(1) pro booleovské hodnoty v MySQL