在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)