Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como obtenho informações de data/hora de uma coluna TIMESTAMP?


TIMESTAMP é um nome infeliz que a equipe do SQL Server deu ao tipo de dados. É para simultaneidade e não tem nada a ver com data ou hora - eles recomendaram usar seu alias, ROWVERSION para evitar confusão. Neste artigo do Books Online, "Em instruções DDL, use rowversion em vez de timestamp sempre que possível."

Infelizmente, você não poderá derivar nenhum detalhe de data/hora do ROWVERSION coluna que você já possui, mas se essa informação for importante, você deve adicionar as colunas CreatedDate / ModifiedDate, por exemplo:
ALTER TABLE dbo.foo ADD CreatedDate DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP;
ALTER TABLE dbo.foo ADD ModifiedDate DATETIME NULL;

Em seguida, crie um TRIGGER que dispara em UPDATE para manter o valor ModifiedDate atual. Você pode precisar decidir se deseja que ModifiedDate seja NULL ou igual a CreatedDate na inicialização.