保留今天日期的最新记录 Table

Keeping Most Recent Record from Today's Date in Table

我需要有关我计划在 SSIS 中使用的 update/delete 语句的帮助。我有以下 table 条记录:

Record   DateCreated   TimeCreated
1          3/7/19       11:00AM
2          3/7/19       8:00AM
3          2/5/19       9:00AM
4          2/6/19       10:00AM

我想更新 table 以便保留今天日期 (3/7/19) 的最新记录,但删除今天日期的旧记录。

table 更新后应该是这样的:

Record   DateCreated   TimeCreated
1          3/7/19       11:00AM
3          2/5/19       9:00AM
4          2/6/19       10:00AM

如果今天的日期有超过 2 条记录(例如 3、4 等),我希望它只保留最近的一条。

任何人都可以帮我解决这个问题所需的 update/delete 声明吗?

您可以使用可更新的 CTE:

with todelete as (
      select t.*,
             row_number() over (partition by datecreated order by timecreated desc) as seqnum
      from t
     )
delete from todelete
    where seqnum > 1 and
          datecreated = convert(date, getdate());