mysql - 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 语法。
改成这样:
UPDATE my_table
SET created_at = DATE_ADD(delivery_estimate, INTERVAL -30 day)
或更简单:
UPDATE my_table
SET created_at = delivery_estimate - INTERVAL 30 day
推荐阅读
- java - 使用jackson将xml映射到java时出错:com.fasterxml.jackson.databind.exc.MismatchedInputException
- microsoft-graph-api - How to acces some one's inbox with Application permission using MS Graph Api
- c# - Xamarin.Forms:未使用 Autofac 调用选项卡式页面的 ViewModel
- javascript - How to pass data item to react native modal
- android - How can I add foregroundServiceType to a library manifest while maintaining backwards compatibility?
- java - Anylogic - 从占用的资源中获取资源池
- flutter - 在 Flutter 中将数据从一个屏幕传递到另一个屏幕是 null
- apache - 如果条件不匹配/否定条件,.htaccess 重定向
- powershell - 在 Powershell 中查找日志错误?
- javascript - 将数组推入 Object JavaScript