我有一张约有200万条记录的表。我必须遍历每条记录并更新生效日期。我需要将每个日期的日期设置为每月的第一天。
如果当前日期是每月的第一天,请忽略。
即
07/01/2018
07/21/2018 => 07/01/2018
08/11/2018 => 08/01/2018
当前,我将其编写为C#程序,并且花费的时间太长。 有更好的解决方案吗?
答案 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;