Sql 向所有行添加7天,日期为过去7天
我负责解决基于以下内容的场景: 数据库服务器被重置为错误的日期和时间,没有人知道。更新过去一周内的任何订单日期以添加7天 Orderdate存储在ORDERS.Orderdate中。我尝试使用以下代码,但失败了:Sql 向所有行添加7天,日期为过去7天,sql,oracle,Sql,Oracle,我负责解决基于以下内容的场景: 数据库服务器被重置为错误的日期和时间,没有人知道。更新过去一周内的任何订单日期以添加7天 Orderdate存储在ORDERS.Orderdate中。我尝试使用以下代码,但失败了: UPDATE ORDERS SET ORDERDATE,DATEADD(day,7,OrderDate) WHERE DATEDIFF >= ( DAY, DATEDIFF(DAY, @ORDERDATE, -7), GETDATE()); 有人
UPDATE ORDERS
SET ORDERDATE,DATEADD(day,7,OrderDate)
WHERE DATEDIFF >= (
DAY,
DATEDIFF(DAY, @ORDERDATE, -7),
GETDATE());
有人能给我提供正确的代码吗
感谢您的帮助 你可以试试
Update ORDERS
SET ORDERDATE = ORDERDATE + 7
WHERE SYSDATE - ORDERDATE <= 7;
更新订单
设置ORDERDATE=ORDERDATE+7
其中SYSDATE-ORDERDATE您的语法似乎是针对SQL Server的,但您为Oracle标记了问题。在任何情况下,Oracle中正确的更新
查询应该如下所示:
UPDATE ORDERS
SET ORDERDATE = ORDERDATE + INTERVAL '7' DAY
WHERE ORDERDATE > SYSDATE - INTERVAL '7' DAY
这里的SYSDATE
是一个DATE
对象,表示当前日期和时间。根据要更新的数据量,您可能需要执行foor循环,并包括中间提交ORDERDATE=ORDERDATE+7
仅在ORDERDATE的数据类型为DATE
时才起作用。对于TIMESTAMP
数据类型,必须使用INTERVAL
。