Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment puis-je obtenir des informations de date/heure à partir d'une colonne TIMESTAMP ?

TIMESTAMP est un nom malheureux que l'équipe SQL Server a donné au type de données. C'est pour la simultanéité et n'a rien à voir avec la date ou l'heure - ils ont recommandé d'utiliser son alias, ROWVERSION pour éviter les confusions. Dans cet article de la documentation en ligne, "Dans les instructions DDL, utilisez rowversion au lieu de timestamp dans la mesure du possible."

Malheureusement, vous ne pourrez pas déduire les détails de date/heure de la ROWVERSION colonne que vous avez déjà, mais si cette information est importante, vous devez ajouter des colonnes CreatedDate / ModifiedDate, par exemple :

ALTER TABLE dbo.foo ADD CreatedDate DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP;
ALTER TABLE dbo.foo ADD ModifiedDate DATETIME NULL;

Créez ensuite un TRIGGER qui se déclenche sur UPDATE pour conserver la valeur ModifiedDate actuelle. Vous devrez peut-être décider si vous voulez que la ModifiedDate soit NULL ou égal à CreatedDate à l'initialisation.