всем привет в базе данных отмечаю в столбце date_time время активации инвайт-кода, вот таким образом: 28.01.2016 | 01:04:33:6092 в определённый срок по дню, году и месяцу нужно очищать старые записи, установив интервал например через полгода и 5 дней от даты из столбца date_time помогите пожалуйста реализовать возможность очистки базы данных ?
Code: $days = 5; $seconds = time() – $days * 24 * 60 * 60; $date = date(‘Y-m-d’, $seconds); $query = “DELETE FROM activation WHERE date_time < ‘”.$date.” ’ ”;
grimnir, я попробовал - не удаляется запись может быть дату и время лучше в разных колонках размещать ?
привет, а код можешь написать сюда?Может дата не в том формате? Я то написал примерный код ,как реализовать,но тут на деле не трудно.
дата формируется вот таким кодом: PHP: date_default_timezone_set('Europe/Moscow');$date_log = date("d.m.Y");$time_log = date("H:i:s");$millicekundi = microtime(1);$mikro = substr($millicekundi, strrpos($millicekundi, '.')+1);$date_time = $date_log.' | '.$time_log.':'.$mikro;
Если тебе нужны милисекунды, то в Mysql 5.7 появилась их поддержка. В противном случае рекоммендую пользоваться типом данных DateTime
Зачем вообще что-то удалять? Проще не впускать на активации кода по времени действия введённого кода. Для того что ты хочешь сделать нужно вести доп индекс минимум по полю времени активации, а удалять лучше через DATE_SUB, чтобы отталкиваться от времени, которое на сервере. Если приспичило удалять, то сделай в redis'e или мемкеше ключик с ттл.