Ответ 1
В T-SQL есть оператор DATEADD, вы можете найти его здесь
UPDATE Procrastination SET DropDeadDueDate = DATEADD(yyyy,1,DropDeadDueDate)
EDIT: вы можете использовать год, yy или yyyy для первого аргумента DATEADD.
Я хочу добавить 1 год в столбец типа datetime в каждой строке таблицы. Добавление с помощью инструкции UPDATE легко для числовых типов. например:
UPDATE TABLE SET NUMBERCOLUMN = NUMBERCOLUMN + 1
Я хотел бы сделать то же самое с типом DATETIME...
UPDATE Procrastination SET DropDeadDueDate = DropDeadDueDate + ?
... но я не уверен, какую ценность использовать. Есть ли числовое значение, которое я мог бы использовать, что означает "1 год"? Или есть функция DATEADD или аналогичная функция в SQL Server?
ДОПОЛНИТЕЛЬНЫЙ ВОПРОС
Я хотел бы сделать это не для одного поля, а для каждого поля в базе данных типа данных 'datetime'. Есть ли простой способ выбрать все поля типа 'datetime' и выполнить обновление добавления x количество лет? Я новичок в sql, поэтому, пожалуйста, будьте нежны...
В T-SQL есть оператор DATEADD, вы можете найти его здесь
UPDATE Procrastination SET DropDeadDueDate = DATEADD(yyyy,1,DropDeadDueDate)
EDIT: вы можете использовать год, yy или yyyy для первого аргумента DATEADD.
Это можно сделать с помощью функции DATEADD(), например:
UPDATE Procrastination SET DropDeadDueDate = DATEADD(yy, 1, DropDeadDueDate)
UPDATE Procrastination SET DropDeadDueDate = DATEADD(year, 1, DropDeadDueDate)
SQL Server имеет функцию DATEADD.
http://msdn.microsoft.com/en-us/library/aa258267(SQL.80).aspx
Функция DateAdd должна делать то, что вы хотите.
UPDATE Procrastination SET DropDeadDueDate = DateAdd(yy, 1, DropDeadDueDate)
UPDATE Procrastination SET DropDeadDueDate =
DATEADD(yy, 1, DropDeadDueDate)