使用T-SQL将当前日期插入日期列?

时间:2011-11-02 14:06:46

标签: sql tsql stored-procedures

我正在尝试在用户决定停用或激活UserID时插入日期。我试图使用SP触发它,但显然这比我想象的要难。

我可以做一个

SELECT GETDATE()

获取日期但有没有办法从GETDATE插入该信息并将其放入我想要的列中?

5 个答案:

答案 0 :(得分:18)

几种方式。首先,如果每次发生[de]激活时都添加一行,则可以将列默认设置为GETDATE(),而不是在插入中设置值。否则,

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

答案 1 :(得分:8)

将新行插入给定表(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())

答案 2 :(得分:5)

UPDATE Table
SET DateColumn=GETDATE()
WHERE UserID=@UserID

如果您要插入表格,并且总是需要输入当前日期,我建议将GETDATE()设置为该列的默认值,并且不允许使用NULL

答案 3 :(得分:4)

如果您希望将信息存储在表中,则需要使用INSERT或UPDATE语句。听起来你需要一个UPDATE语句:

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

答案 4 :(得分:3)

您可以在默认情况下使用getdate()作为此SO question's accepted answer shows。这样您就不会提供日期,只需插入其余日期,该日期就是该列的默认值。

您也可以在插入的值列表中提供它,并根据需要手动执行。