.net 更新MS sql 2005中日期字段的月份值

.net 更新MS sql 2005中日期字段的月份值,.net,sql,web-services,.net,Sql,Web Services,我需要一种方法来更新数据库中dateTime字段上的月份值。我已经超过了这个月的int值,需要在更新时使用它。 是否可以在sql语句中执行此操作,或者我最好在Web服务中的c#中执行此操作?向下移动,然后再向上移动: UPDATE table SET datecol = DATEADD(m, @newmonth, DATEADD(m, -MONTH(datecol), datecol)) WHERE id = @id 或者,更简单地说: UPDATE table SET datecol = D

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

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

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

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

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

您可以在SQLServer的TSQL中完成这一切。查看和功能

我希望这会奏效:

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

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

您可以在SQLServer的TSQL中完成这一切。查看和功能

我希望这会奏效:

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

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

传递给您的整数是新的月份值还是增量?传递给您的整数是新的月份值还是增量?谢谢,我收到了这个错误消息。子查询返回了多个值。当子查询在=、!=、=或者当子查询用作表达式时。该语句已终止。您需要发布代码,我的查询与此无关,因为它确实包含任何子查询。这就是我所拥有的。声明@newMonth int集合@newMonth=5;更新dbo.tb_bookings SET startDateTime=DATEADD(month,@newMonth-DATEPART(month,startDateTime),startDateTime),其中requestPackID='383';我想你可能有触发问题。该代码没有任何子查询,即使多行受到影响,它也可以工作。现在,如果多行受到影响,那么触发器可能不会预料到这一点-请记住,更新触发器只会对此语句触发一次。谢谢,我认为您使用的触发器可能是正确的。我会调查的。谢谢,不过我收到了这个错误消息。子查询返回了多个值。当子查询在=、!=、=或者当子查询用作表达式时。该语句已终止。您需要发布代码,我的查询与此无关,因为它确实包含任何子查询。这就是我所拥有的。声明@newMonth int集合@newMonth=5;更新dbo.tb_bookings SET startDateTime=DATEADD(month,@newMonth-DATEPART(month,startDateTime),startDateTime),其中requestPackID='383';我想你可能有触发问题。该代码没有任何子查询,即使多行受到影响,它也可以工作。现在,如果多行受到影响,那么触发器可能不会预料到这一点-请记住,更新触发器只会对此语句触发一次。谢谢,我认为您使用的触发器可能是正确的。我将对此进行研究。谢谢。但是,我需要更新多行,并且在子查询返回多个值时出现错误。本例中没有任何子查询,在更新表中的多行时,这将正常工作。您可能希望发布遇到问题的特定代码。谢谢。但是,我需要更新多行,并且在子查询返回多个值时出现错误。本例中没有任何子查询,在更新表中的多行时,这将正常工作。您可能想发布您遇到问题的特定代码。