Как я могу использовать оператор SQL UPDATE, чтобы добавить 1 год в столбец DATETIME? - PullRequest
23 голосов
/ 04 июня 2009

Я хочу добавить 1 год в столбец типа datetime в каждой строке таблицы. Добавление с использованием оператора UPDATE легко для числовых типов. например:

UPDATE TABLE SET NUMBERCOLUMN = NUMBERCOLUMN + 1

Я бы хотел сделать то же самое с типом DATETIME ...

UPDATE Procrastination SET DropDeadDueDate = DropDeadDueDate + ?

... но я не уверен, какое значение использовать. Могу ли я использовать числовое значение, означающее «1 год»? Или в SQL Server есть функция DATEADD или аналогичная?

ДОПОЛНИТЕЛЬНЫЙ ВОПРОС

Я хотел бы сделать это не для одного поля, а для каждого поля в базе данных типа данных «datetime». Есть ли простой способ выбрать все поля типа «datetime» и выполнить обновление, добавив x количество лет? Я новичок в SQL, поэтому, пожалуйста, будьте осторожны ...

Ответы [ 6 ]

47 голосов
/ 04 июня 2009

На самом деле в T-SQL есть оператор DATEADD, вы можете найти его здесь

UPDATE Procrastination SET DropDeadDueDate = DATEADD(yyyy,1,DropDeadDueDate)

РЕДАКТИРОВАТЬ: Вы можете использовать год , гг или гггг для первого аргумента DATEADD.

8 голосов
/ 04 июня 2009

Это можно сделать с помощью функции DATEADD (), например:

UPDATE Procrastination SET DropDeadDueDate = DATEADD(yy, 1, DropDeadDueDate)
4 голосов
/ 04 июня 2009

SQL Server имеет функцию DATEADD.

http://msdn.microsoft.com/en-us/library/aa258267(SQL.80).aspx

4 голосов
/ 04 июня 2009
UPDATE Procrastination SET DropDeadDueDate = DATEADD(year, 1, DropDeadDueDate)

http://msdn.microsoft.com/en-us/library/ms186819.aspx

3 голосов
/ 04 июня 2009

Функция DateAdd должна делать то, что вы хотите.

UPDATE Procrastination SET DropDeadDueDate = DateAdd(yy, 1, DropDeadDueDate)
1 голос
/ 04 июня 2009

UPDATE Procrastination SET DropDeadDueDate =<br> DATEADD(yy, 1, DropDeadDueDate)

ref: http://doc.ddart.net/mssql/sql70/da-db_5.htm

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...