Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Ngày hết hạn PHP

Chà, tôi không biết cấu trúc cơ sở dữ liệu của bạn, nhưng giả sử nó giống như thế này:

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

Vì vậy, với việc chỉ sử dụng các câu lệnh SQL, bạn có thể sử dụng một cái gì đó, chẳng hạn như DATE_SUB. So sánh date_of_redeem với ngày hôm nay trừ đi số tiền đăng ký. Nếu giá trị của date_of_redeem cao hơn thì bạn sẽ nhận được một kết quả, nếu không nó sẽ trả về một tập kết quả trống.

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

Chỉnh sửa:SQL Fiddle cho truy vấn trên: http://sqlfiddle.com/#!2/ f95ea / 11 (chỉ cần thay đổi user3 vào bất kỳ ID người dùng nào để kiểm tra xem chúng có trả lại bất kỳ kết quả nào không.

nếu bạn muốn có một bảng với tất cả các ngày hết hạn đăng ký, thì bạn có thể làm như sau:

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

SQL Fiddle cho điều này: 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. Cần trợ giúp về cách chèn dữ liệu được phân tách bằng dấu phẩy trong cơ sở dữ liệu mysql bằng PHP

  2. Chèn dữ liệu vào MySQL từ một mảng đa chiều trong php

  3. Biểu thức trường hợp so với Tuyên bố trường hợp

  4. Làm cách nào để chọn và / hoặc xóa tất cả trừ một hàng của mỗi tập hợp các bản sao trong bảng?

  5. Cách khắc phục Thông báo:SQLSTATE [08004] [1040] Quá nhiều kết nối