Мне нужен способ обновить значение месяца в поле dateTime в моей БД. У меня нет значения int за месяц, и мне нужно использовать его для обновления. Возможно ли это сделать в операторе sql или лучше всего сделать это на 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
Вы можете сделать все это на TSQL в Sql Server. Ознакомьтесь с функциями DateDiff и DateAdd .
Я ожидаю, что это сработает:
DECLARE @newMonth int SET @newMonth = 5 --As an example UPDATE dbo.TheTable SET DateField = DATEADD(month, @newMonth - DATEPART(month, DateField) , DateField)