1列更新200万行

时间:2018-08-11 12:20:28

标签: c# tsql sybase-ase

我有一张约有200万条记录的表。我必须遍历每条记录并更新生效日期。我需要将每个日期的日期设置为每月的第一天。

如果当前日期是每月的第一天,请忽略。

    07/01/2018    
    07/21/2018 => 07/01/2018
    08/11/2018 => 08/01/2018

当前,我将其编写为C#程序,并且花费的时间太长。 有更好的解决方案吗?

2 个答案:

答案 0 :(得分:8)

只需使用DATEADD()DATEDIFF()组合即可获取月初的日期

UPDATE t
SET    datecol = DATEADD(MONTH, DATEDIFF(MONTH, '1900-01-01', datecol), '1900-01-01')
FROM   yourtable t;

答案 1 :(得分:0)

它可能很简单:

Update myTable 
    set myDate = DateAdd(day, 1-Day(myDate), myDate)
where day(myDate) > 1;