为 1 列更新 200 万行
Update 2 million rows for 1 column
我有一个 table 大约有 200 万条记录。我必须遍历每条记录并更新生效日期。我需要将每个日期的日期设置为每月的第一天。
如果当前日期是该月的第一天,则忽略。
即
07/01/2018
07/21/2018 => 07/01/2018
08/11/2018 => 08/01/2018
目前,我正在将其编写为 C# 程序,而且它花费的时间太长了。
有更好的解决方案吗?
只需使用 DATEADD()
和 DATEDIFF()
组合即可获得月份的第一天
UPDATE t
SET datecol = DATEADD(MONTH, DATEDIFF(MONTH, '1900-01-01', datecol), '1900-01-01')
FROM yourtable t;
它可以像这样简单:
Update myTable
set myDate = DateAdd(day, 1-Day(myDate), myDate)
where day(myDate) > 1;
我有一个 table 大约有 200 万条记录。我必须遍历每条记录并更新生效日期。我需要将每个日期的日期设置为每月的第一天。
如果当前日期是该月的第一天,则忽略。
即
07/01/2018
07/21/2018 => 07/01/2018
08/11/2018 => 08/01/2018
目前,我正在将其编写为 C# 程序,而且它花费的时间太长了。 有更好的解决方案吗?
只需使用 DATEADD()
和 DATEDIFF()
组合即可获得月份的第一天
UPDATE t
SET datecol = DATEADD(MONTH, DATEDIFF(MONTH, '1900-01-01', datecol), '1900-01-01')
FROM yourtable t;
它可以像这样简单:
Update myTable
set myDate = DateAdd(day, 1-Day(myDate), myDate)
where day(myDate) > 1;