在MS SQL 2005中更新日期字段上的Month值

时间:2020-03-06 15:01:44  来源:igfitidea点击:

我需要一种方法来更新数据库中dateTime字段上的月份值。我已经超过了一个月的int值,需要使用它进行更新。
是否可以在sql语句中执行此操作,或者我最好在cin Web服务中执行此操作?

解决方案

向下移动然后再次向上移动:

UPDATE table
SET datecol = DATEADD(m, @newmonth, DATEADD(m, -MONTH(datecol), datecol))
WHERE id = @id

或者,更简单地说:

UPDATE table
SET datecol = DATEADD(m, @newmonth - MONTH(datecol), datecol)
WHERE id = @id

我们可以在Sql Server的TSQL中完成所有这些操作。检出DateDiff和DateAdd函数。

我希望这会起作用:

DECLARE @newMonth int
SET @newMonth = 5 --As an example

UPDATE dbo.TheTable
SET DateField = DATEADD(month, @newMonth - DATEPART(month, DateField) , DateField)