更新日期,如果是迟到一天

时间:2015-06-24 16:41:14

标签: sql sql-server-2012

enter image description here

用户(user_id)在不同时间段输入数据。如果日期是一天后,则数据被认为是相同的。主要是我想将第3行中的日期更改为第2行。

UPDATE #temp
SET CUR_VALUE_DATETIME = DATEADD(DAY, -1, CUR_VALUE_DATETIME)
WHERE CUR_VALUE_DATETIME <= DATEADD(DAY, -1, CUR_VALUE_DATETIME)

我试过的上述方法什么都没有。

1 个答案:

答案 0 :(得分:2)

如果我了解您尝试使用此特定示例所做的事情,则需要将每个日期与恰好更大的日期进行比较。你可以通过自我加入来做到这一点。

    update t1
    set t1.curr_value_datetime = t2.curr_value_datetime
    from #temp t1
       join #temp t2
          on t1.curr_value_datetime - 1 = t2.curr_value_datetime

但是,由于您提到了user_id,因此您需要调整此内容以将user_id考虑在内。否则你会遇到问题。