2011-11-02 60 views
15

我想在用户决定停用或激活用户ID时插入日期。我试图用一个SP来触发这一点,但是显然这比我想象的要难。使用T-SQL将当前日期插入日期列?

我可以做一个

SELECT GETDATE() 

得到的日期,但有没有从GETDATE插入信息,并把它变成一个专栏中,我想办法?

回答

16

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

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

是啊,我可以留空。我会尝试的。 – nhat

8

要插入新行插入一个给定的表(tblTable):

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

要更新现有行:

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

注意,当INSERT荷兰国际集团新行,你需要观察在桌上的任何约束 - 最有可能的约束 - 所以你可能需要提供其他列的值例如...

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

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

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

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

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

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

如果要插入到表中,并且将始终需要把当前的日期,我会建议设置GETDATE()作为该列的默认值,而不允许NULL