sql >> Databasteknik >  >> RDS >> Mysql

PHP utgångsdatum

Tja, jag känner inte till din databasstruktur, men låt oss säga att det är ungefär så här:

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

Så, med att bara använda SQL-satser, kan du använda något, som DATE_SUB. Jämför date_of_deem med dagens datum minus prenumerationsbeloppet. Om värdet av date_of_redeem är högre skulle du få ett resultat, annars skulle det returnera en tom resultatuppsättning.

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

Redigera:SQL Fiddle för ovanstående fråga:http://sqlfiddle.com/#!2/ f95ea/11 (ändra bara user3 till något av användar-ID:n för att kontrollera om de returnerar några resultat.

om du vill få ett bord med alla prenumerations utgångsdatum kan du göra något så här:

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

SQL Fiddle för detta:http://sqlfiddle.com/#!2/f95ea/9



  1. Använda MariaDB Flashback på en MySQL-server

  2. Främmande nycklar i MySQL?

  3. Ogiltigt datetime-format:1292 Felaktigt datetime-värde

  4. Vad är skillnaden mellan MySQL Native Driver och MySQL Client Library