MYSQL Таблица структуры trial_list выглядит следующим образом ...
id | product_id | expiry_date(date) | by_user | curr_datentime(timestamp)
мы можем продлить любую пробную версию, и если мы сделаем это, это просто другая строка с новым expiry_date.
Теперь мы хотим, чтобы вчера истек срок действия строк, в настоящее время мы используем следующий SQL-запрос .....
Образец базы данных MYSQL
+----+-------------+-------------+-------------+----------+---------------------+
| id | product_id | comment | expiry_date | by_user | dnt |
+----+-------------+-------------+-------------+----------+---------------------+
| 2 | 50 | testing | 2011-02-18 | tester | 2011-02-17 23:36:12 |
+----+-------------+-------------+-------------+----------+---------------------+
| 3 | 50 | again | 2011-02-20 | tester | 2011-02-19 20:36:12 |
+----+-------------+-------------+-------------+----------+---------------------+
| 4 | 50 | extend | 2011-02-23 | tester | 2011-02-21 22:36:12 |
+----+-------------+-------------+-------------+----------+---------------------+
$sql = 'SELECT id, product_id, expiry_date, by_user, curr_datentime FROM trial_list WHERE expiry_date < CURDATE() ORDER BY expiry_date DESC';
Мы считаем, что это неверно, поскольку получение всех строк, дата которых старше вчера, не обновлено expiry_date, предположим, что мы дали некоторую дату истечения срока действия пользователя 1 февраля 2011 года, а затем мы снова изменились с 12 февраля 2011 года, поэтому он выбирает 1 февраля 2011 запись. Я думаю, что это имеет смысл.