2011-11-02 12 views
15

Sto tentando di inserire una data in cui un utente decide di disattivare o attivare un ID utente. Sto provando a usare un SP per farlo scattare, ma apparentemente questo è più difficile di quanto pensassi.Inserire la data corrente in una colonna della data usando T-SQL?

posso fare un

SELECT GETDATE() 

per ottenere la data, ma c'è un modo per inserire le informazioni da GETDATE e metterlo in una colonna che voglio?

risposta

16

Un paio di modi. Innanzitutto, se aggiungi una riga ogni volta che si verifica un'attivazione [de], puoi impostare la colonna come predefinita su GETDATE() e non impostare il valore nell'inserto. Altrimenti,

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

Yea I può lasciarlo vuoto. Ci proverò. – nhat

8

Per inserire una nuova riga in una determinata tabella (tblTable):

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

Per aggiornare una riga esistente:

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

noti che quando INSERT ing una nuova riga è necessario osservare tutti i vincoli che sono sul tavolo - molto probabilmente il vincolo NOT NULL - quindi potrebbe essere necessario fornire valori per altre colonne ...

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

Se si desidera memorizzare le informazioni in una tabella, è necessario utilizzare un'istruzione INSERT o UPDATE. Suona come avete bisogno di un'istruzione UPDATE:

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

Si potrebbe utilizzare getdate() in un default come questo SO question's accepted answer shows. In questo modo non fornisci la data, basta inserire il resto e quella data è il valore predefinito per la colonna.

Si potrebbe anche fornire nella lista valori del proprio inserto e farlo manualmente se lo si desidera.

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

Se si sta inserendo in una tabella, e sarà sempre bisogno di mettere la data corrente, mi sento di raccomandare l'impostazione GETDATE() come valore predefinito per quella colonna, e non consentono valori null

Problemi correlati