Усеченная таблица с датой времени старше n дней

0

Я хочу truncate некоторые записи из таблицы с предложением даты.

У этой ссылки есть решение, но это не работает для меня.

TRUNCATE TABLE 'meter_to_sim_mapping' WHERE 'meter_to_sim_mapping'.'mapped_at' <=

В выше, где я хочу добавить значение времени даты. Значение - 2018-04-02 16:03:52. Запрос должен удалить все записи до этой даты.

Как я могу усечь таблицу с датой?

Любая помощь будет высоко оценен.

  • 0
    Не используйте TRUNCATE, используйте DELETE
  • 0
    TRUNCATE TABLE полностью очищает таблицу dev.mysql.com/doc/refman/5.7/en/truncate-table.html
Показать ещё 1 комментарий
Теги:
truncate

2 ответа

0

Ниже приведен пример:

DELETE FROM TABLE_NAME
WHERE DATE_COLUMN = DATE_SUB("2018-04-02 16:03:52", INTERVAL 10 DAY);

Вы можете изменить его соответственно в соответствии с вашим требованием.

Ссылка: MySQL DATE_SUB() Функция

0

Вы должны использовать DELETE

DELETE FROM TABLE_NAME
WHERE DATE_COLUMN < NOW() - INTERVAL N DAY

или же

DELETE FROM TABLE_NAME
WHERE CAST(DATE_COLUMN AS DATE) < STR_TO_DATE('1-01-2012', '%d-%m-%Y')  - INTERVAL N DAY

Вместо NOW() Вы можете использовать свое значение datetime

STR_TO_DATE('12-01-2014 00:00:00','%m-%d-%Y %H:%i:%s')

демонстрация

http://sqlfiddle.com/#!9/4607a6/1

  • 0
    Я не хочу использовать NOW() . Я хочу дать дату, а затем вычесть дни из нее
  • 0
    Проверьте сейчас я отредактировал мой ответ
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню