mysql date\u add()函数

sauutmhj  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(446)

我正在尝试通过向现有日期添加天/周/月来更新基于现有日期列的日期列

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

这是完美的作品,但我试图实现的是这样的东西,似乎不工作

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

这里,那个 TimeType 是我表中的另一列,包含诸如日、周、月等值。。。基本上是时间信息。我希望能够动态地从列中提取值,而不是

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

一周是静止的。有没有办法做到这一点。我可以使用任何其他替代方法,只要我可以动态地从timetype表中提取值。

enxuqcxy

enxuqcxy1#

你可以用 CASE 表达

  1. update Form_1
  2. set `DateP1`= CASE `TimeType`
  3. WHEN 'day' THEN DATE_ADD(`Date`, INTERVAL `P1` day)
  4. WHEN 'week' THEN DATE_ADD(`Date`, INTERVAL `P1` week)
  5. ...
  6. END
  7. WHERE `id`=1;

相关问题