@Us59

Как выполнить условие в заданное время?

Есть таблица в которую записывается дата и время через NOW()
Для наглядности пример:
13.06.2019 13:55:00

Есть файл php который запускается по cron каждые 5 минут.
Вот структура таблицы:

site | proxy         | when
 5   | 157.666.55.21 | 13.06.2019 13:55:00
 2   | 157.666.55.91 | 13.06.2019 13:55:00
 1   | 157.666.55.51 | 13.06.2019 13:55:00
 3   | 157.666.55.91 | 13.06.2019 13:55:00
 9   | 157.666.55.91 | 13.06.2019 13:55:00


Задача в том, что нужно очищать эту таблицу от записей.

Есть site их может быть сколько угодно, но для каждого id у меня определенные условия по очистке, т.е. сайт 1 мне нужно удалить все записи в 23:00, а для сайта 2 в 02:00, а для сайта 3 в 05:50 итд.

SELECT * FROM proxy WHERE site = 1 AND  ... как-то задать условие, чтобы он проверял что текущее время = 23:00 или больше, но не меньше.

p.s. также может понадобиться, установить, чтобы через 2 дня в 23:00 срабатывало.
  • Вопрос задан
  • 64 просмотра
Решения вопроса 1
@Aricus
Было бы гораздо проще при записи даты и времени в unix timestamp. Их гораздо проще сравнивать и считать разницу. Но это так, на будущее. В вашем случае получается примерно так:
DELETE FROM proxy WHERE site = 1 AND STR_TO_DATE(when , '%d.%m.%Y %H:%i:%s') < STR_TO_DATE(... , '%d.%m.%Y %H:%i:%s')

где вместо ... в php нужно записать нужную дату.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы