Mysql
 sql >> Datenbank >  >> RDS >> Mysql

PHP-Ablaufdatum

Nun, ich kenne Ihre Datenbankstruktur nicht, aber nehmen wir an, sie sieht in etwa so aus:

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

Wenn Sie also nur SQL-Anweisungen verwenden, könnten Sie etwas wie DATE_SUB verwenden. Vergleichen Sie das Einlösedatum mit dem heutigen Datum abzüglich des Zeichnungsbetrags. Wenn der Wert von date_of_redeem höher ist, erhalten Sie ein Ergebnis, andernfalls würde es eine leere Ergebnismenge zurückgeben.

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

Bearbeiten:SQL Fiddle für die obige Abfrage:http://sqlfiddle.com/#!2/ f95ea/11 (Ändere einfach user3 an eine der Benutzer-IDs, um zu prüfen, ob sie Ergebnisse zurückgeben.

Wenn Sie eine Tabelle mit allen Ablaufdaten des Abonnements erhalten möchten, können Sie Folgendes tun:

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

SQL Fiddle dafür:http://sqlfiddle.com/#!2/f95ea/9