У меня есть таблица, в которой хранится datetime
. Операция была last_run
, у меня также есть столбец frequency
, который является частотой в месяцах, в течение которой операция должна выполняться.Изменить блок DATE_ADD на основе значения столбца
+----+---------------------+-----------+
| id | last_run | frequency |
+----+---------------------+-----------+
| 1 | 2014-05-22 00:00:00 | 12 |
|----|---------------------|-----------|
| 2 | 2015-05-15 00:00:00 | 0.25 |
+----+---------------------+-----------+
Я использую следующий запрос, чтобы получить дату, что следующая операция должна выполняться:
SELECT DATE_ADD(last_run, INTERVAL frequency MONTH) AS next_run FROM table;
Это не возвращает правильный next_run
дату на второй записи из-за frequency
значение.
Можно добавить условие, так что, когда frequency = 0.25
frequency
становится7
MONTH
становитсяDAY
Это является частью старой системы, я в настоящее время рефакторинга. Было бы лучше сохранить тип интервала (DAY/MONTH/YEAR
) и передать это запросу, или есть способ добавить вышеуказанные условия к запросу?