更新SQL Server -1天中的所有日期列

Mar*_*ria 4 sql database sql-server datetime date

我想更新数据库(SQL Server Express)中所有特定ID的日期。

我正在显示我想要的ID。

SELECT TOP (1000) ID, Dates
FROM tbl_table
WHERE (id IN (29695, 29700, 29701, 29702, 29703, 29704, 29705, 29706, 29707, 29708, 29709, 29710, 29711, 29712, 29713, 29714, 29715))
Run Code Online (Sandbox Code Playgroud)

并且我在数据库中的日期是这样的:

在此处输入图片说明

有什么办法可以用相同的日期-1天来更新所有日期列?

例如:如果有2019-12-20,将其更新为2019-12-19

例如,如果要在PHP中执行此操作,则将遍历此查询并获取所有所有日期。在我删除这样的一天后:

date('m/d/Y', strtotime($date. ' - 1 days');
Run Code Online (Sandbox Code Playgroud)

并创建一个查询来更新基于id的所有列。我只是想避免这种情况。有没有执行此操作的SQL命令?

谢谢

Kob*_*obi 5

以下请求将通过在每个日期添加-1天来更新所需的行:

UPDATE tbl_table 
SET    dates = Dateadd(day, -1, dates) 
WHERE  id IN ( 29695, 29700, 29701, 29702, 
               29703, 29704, 29705, 29706, 
               29707, 29708, 29709, 29710, 
               29711, 29712, 29713, 29714, 29715 )
Run Code Online (Sandbox Code Playgroud)

DATEADD 函数采用3个参数:

  1. interval(日,月,年..)
  2. 所述increment(该值以添加或删除,如果负)
  3. 一个expression(夹心是日期时间类型)

请参阅DATEADD文档