Функция MySQL DATE_ADD () - PullRequest
       7

Функция MySQL DATE_ADD ()

0 голосов
/ 18 ноября 2018

Я пытаюсь обновить столбец даты на основе существующего столбца даты, добавляя дни / недели / месяцы к существующей дате

update Form_1 set `DateP1`= DATE_ADD(`Date`, INTERVAL `P1` week) where 
`id`=1;

Это прекрасно работает, однако я пытаюсь добиться чего-то подобного, что, похоже, не работает

update Form_1 set `DateP1`= DATE_ADD(`Date`, INTERVAL `P1` `TimeType`) where 
`id`=1;

Здесь TimeType - это еще один столбец в моей таблице, который содержит такие значения, как день, неделя, месяц ... в основном информация о времени. Я хочу иметь возможность извлекать значение из столбца динамически вместо

DATE_ADD(`Date`, INTERVAL `P1` week)

где неделя статична. Есть ли способ добиться этого. Я в порядке с использованием любого другого альтернативного метода, если я могу динамически извлекать значения из таблицы TimeType.

1 Ответ

0 голосов
/ 18 ноября 2018

Вы можете использовать CASE выражение

update Form_1 
set `DateP1`= CASE `TimeType`
                   WHEN 'day' THEN DATE_ADD(`Date`, INTERVAL `P1` day)
                   WHEN 'week' THEN DATE_ADD(`Date`, INTERVAL `P1` week)
                   ...
              END
WHERE `id`=1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...