我正在尝试通过在现有日期的基础上增加天/周/月来更新现有日期列的日期列
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表中动态提取值,就可以使用任何其他替代方法。
答案 0 :(得分:5)
您可以使用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;