MySQL - 在另一列上使用 DATEADD 更新列

问题描述

我正在尝试使用新值更新我的数据库表中的 created_at (DATETIME) 列,该值基于另一列 - delivery_estimate (DATE) 列之前 30 天。

我已经尝试了以下方法,但我的语法出现错误,说 DATEADD 不存在:

UPDATE my_table
SET created_at = DATEADD(day,-30,delivery_estimate)

解决方法

MySql 中函数的正确名称是 DATE_ADD(),但您也可以使用 SQL Server syntax
改成这样:

UPDATE my_table
SET created_at = DATE_ADD(delivery_estimate,INTERVAL -30 day) 

或更简单:

UPDATE my_table
SET created_at = delivery_estimate - INTERVAL 30 day