我正在尝试通过向现有日期添加天/周/月来更新基于现有日期列的日期列
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 表中提取值,我就可以使用任何其他替代方法。
最佳答案
您可以使用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;
关于MySQL DATE_ADD() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53355788/