web-dev-qa-db-fra.com

Insérer la date actuelle dans une colonne de date à l'aide de T-SQL?

J'essaie d'insérer une date lorsqu'un utilisateur décide de désactiver ou d'activer un ID utilisateur. J'essaie d'utiliser un SP pour déclencher cela, mais apparemment, c'est plus difficile que je ne le pensais.

Je peux faire un

SELECT GETDATE()

pour obtenir la date, mais existe-t-il un moyen d'insérer ces informations à partir de GETDATE et de les mettre dans une colonne que je veux?

18
nhat

Deux façons. Premièrement, si vous ajoutez une ligne à chaque fois qu'une activation [de] se produit, vous pouvez définir la colonne par défaut sur GETDATE () et ne pas définir la valeur dans l'insertion. Autrement,

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

Pour insérer une nouvelle ligne dans une table donnée (tblTable):

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

Pour mettre à jour une ligne existante:

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

Notez que lorsque INSERTing une nouvelle ligne, vous devrez observer toutes les contraintes qui sont sur la table - probablement le NOT NULL contrainte - vous devrez peut-être fournir des valeurs pour d'autres colonnes, par exemple ...

 INSERT INTO tblTable (Name, Type, DateColumn) VALUES ('John', 7, GETDATE())
9
El Ronnoco
UPDATE Table
SET DateColumn=GETDATE()
WHERE UserID=@UserID

Si vous insérez dans une table et que vous aurez toujours besoin de mettre la date actuelle, je recommanderais de définir GETDATE() comme valeur par défaut pour cette colonne, et n'autorisez pas les valeurs NULL

5
Curt

Si vous cherchez à stocker les informations dans une table, vous devez utiliser une instruction INSERT ou UPDATE. Il semble que vous ayez besoin d'une instruction UPDATE:

UPDATE  SomeTable
SET     SomeDateField = GETDATE()
WHERE   SomeID = @SomeID
4
James Johnson

Vous pouvez utiliser getdate () par défaut comme ceci la réponse acceptée de la question SO montre . De cette façon, vous ne fournissez pas la date, vous insérez simplement le reste et cette date est la valeur par défaut pour la colonne.

Vous pouvez également le fournir dans la liste des valeurs de votre insert et le faire manuellement si vous le souhaitez.

3
Mike Walsh