Вставить текущую дату в столбец даты с использованием T-SQL?

Я пытаюсь вставить дату, когда пользователь решает отключить или активировать UserID. Я пытаюсь использовать SP для запуска этого, но при этом это сложнее, чем я думал, что это будет.

Я могу сделать

SELECT GETDATE()

чтобы получить дату, но есть ли способ вставить эту информацию из GETDATE и поместить ее в нужный столбец?

Ответы

Ответ 1

Несколько способов. Во-первых, если вы добавляете строку каждый раз при активации [de], вы можете установить столбец по умолчанию GETDATE() и не устанавливать значение во вставке. В противном случае,

UPDATE TableName SET [ColumnName] = GETDATE() WHERE UserId = @userId

Ответ 2

Чтобы вставить новую строку в заданную таблицу (tblTable):

INSERT INTO tblTable (DateColumn) VALUES (GETDATE())

Чтобы обновить существующую строку:

UPDATE tblTable SET DateColumn = GETDATE()
 WHERE ID = RequiredUpdateID

Обратите внимание, что при INSERT в новой строке вам понадобятся любые ограничения, которые находятся в таблице - скорее всего это ограничение NOT NULL - поэтому вам может потребоваться предоставить значения для других столбцов, например...

 INSERT INTO tblTable (Name, Type, DateColumn) VALUES ('John', 7, GETDATE())

Ответ 3

UPDATE Table
SET DateColumn=GETDATE()
WHERE [email protected]

Если вы вставляете в таблицу и всегда должны указывать текущую дату, я бы рекомендовал установить GETDATE() в качестве значения по умолчанию для этого столбца и не разрешать NULL

Ответ 4

Если вы хотите хранить информацию в таблице, вам нужно использовать инструкцию INSERT или UPDATE. Похоже, вам нужен оператор UPDATE:

UPDATE  SomeTable
SET     SomeDateField = GETDATE()
WHERE   SomeID = @SomeID

Ответ 5

Вы можете использовать getdate() по умолчанию, как это показано в в вопросе, принятом в вопросе SO. Таким образом, вы не указываете дату, вы просто вставляете остальные, и эта дата является значением по умолчанию для столбца.

Вы также можете указать его в списке значений вашей вставки и сделать это вручную, если хотите.