Mysql
 sql >> Baza danych >  >> RDS >> Mysql

data wygaśnięcia PHP

Cóż, nie znam struktury twojej bazy danych, ale powiedzmy, że jest to coś takiego:

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

Tak więc, używając tylko instrukcji SQL, możesz użyć czegoś takiego jak DATE_SUB. Porównaj date_of_redeem z dzisiejszą datą minus kwota subskrypcji. Jeśli wartość date_of_redeem jest wyższa, otrzymasz wynik, w przeciwnym razie zwróci pusty zestaw wyników.

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

Edycja:SQL Fiddle dla powyższego zapytania:http://sqlfiddle.com/#!2/ f95ea/11 (po prostu zmień user3 do dowolnego identyfikatora użytkownika, aby sprawdzić, czy zwracają jakieś wyniki.

jeśli chcesz otrzymać tabelę ze wszystkimi datami wygaśnięcia subskrypcji, możesz zrobić coś takiego:

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

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak włamać się do MySQL GROUP_CONCAT, aby pobrać ograniczoną liczbę wierszy?

  2. Ustawienie rozmiaru strony Innodb

  3. Naruszenie ograniczeń php Błąd 1452

  4. Dołącz złożoną logikę do pojedynczego zapytania MySQL

  5. Wiele tabel czy jedna megatabela w SQL?