sql >> Databáze >  >> RDS >> Sqlserver

Jak získám informace o datu/čase ze sloupce TIMESTAMP?

TIMESTAMP je nešťastné jméno, které tým SQL Server dal datovému typu. Je to pro souběžnost a nemá nic společného s datem nebo časem – doporučují používat jeho alias, ROWVERSION aby nedošlo k záměně. Z tohoto článku Books Online „V příkazech DDL používejte verzi řádku namísto časového razítka, kdykoli je to možné.“

Bohužel z ROWVERSION nebudete moci odvodit žádné podrobnosti o datu/čase sloupec, který již máte, ale pokud jsou tyto informace důležité, měli byste přidat sloupce CreatedDate / ModifiedDate, například:

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

Poté vytvořte TRIGGER který se spustí UPDATE aby hodnota ModifiedDate zůstala aktuální. Možná se budete muset rozhodnout, zda chcete, aby ModifiedDate bylo NULL nebo rovno CreatedDate při inicializaci.



  1. SQL Server VYBERTE POSLEDNÍ N řádků

  2. Jak najdu v MySQL znaky jiné než ASCII?

  3. Najděte velikost bajtů řádku v PostgreSQL

  4. Jak opravit chybu „funkce datediff vedla k přetečení“ na serveru SQL Server