2011-11-02 19 views
15

Estoy tratando de insertar una fecha cuando un usuario decide desactivar o activar un ID de usuario. Intento usar un SP para activar eso pero aparentemente esto es más difícil de lo que pensé.Inserte la fecha actual en una columna de fecha usando T-SQL?

puedo hacer un

SELECT GETDATE() 

para obtener la fecha, pero hay una manera de insertar esa información de GETDATE y ponerlo en una columna que quiero?

Respuesta

16

Un par de formas. En primer lugar, si agrega una fila cada vez que se produce una [de] activación, puede establecer la columna predeterminada en GETDATE() y no establecer el valor en la inserción. De lo contrario,

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

Sí me puede dejarlo en blanco. Voy a intentar eso. – nhat

8

Para insertar una nueva fila en una tabla dada (tblTable):

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

Para actualizar una fila existente:

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

Tenga en cuenta que cuando INSERT ing una nueva fila que tendrá que observar las restricciones que están sobre la mesa - muy probablemente el NOT NULL restricción - por lo que pueden necesitar para proporcionar valores de otras columnas, por ejemplo ...

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

Si desea almacenar la información en una tabla, debe usar una instrucción INSERT o UPDATE. Suena como que necesita una instrucción UPDATE:

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

Usted podría utilizar getdate() en un valor predeterminado, ya que SO question's accepted answer shows. De esta manera no proporciona la fecha, solo inserta el resto y esa fecha es el valor predeterminado para la columna.

También puede proporcionarlo en la lista de valores de su inserción y hacerlo manualmente si lo desea.

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

Si va a insertar en una tabla, y siempre que tenga que poner la fecha actual, recomendaría el establecimiento GETDATE() como el valor predeterminado para esa columna, y no permiten valores NULL

Cuestiones relacionadas