首页 > 解决方案 > MySQL - 在另一列上使用 DATEADD 更新列

问题描述

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

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

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

标签: mysqlsqlsql-updatedateadd

解决方案


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

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

或更简单:

UPDATE my_table
SET created_at = delivery_estimate - INTERVAL 30 day

推荐阅读