Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie erhalte ich Datums-/Uhrzeitinformationen aus einer TIMESTAMP-Spalte?

TIMESTAMP ist ein unglücklicher Name, den das SQL Server-Team dem Datentyp gegeben hat. Es dient der Parallelität und hat nichts mit Datum oder Uhrzeit zu tun – es wird empfohlen, seinen Alias ​​ROWVERSION zu verwenden um Verwirrung zu vermeiden. Aus diesem Books Online-Artikel, "Verwenden Sie in DDL-Anweisungen wo immer möglich die Zeilenversion anstelle des Zeitstempels."

Leider können Sie aus der ROWVERSION keine Datums-/Zeitangaben ableiten Spalte, die Sie bereits haben, aber wenn diese Informationen wichtig sind, sollten Sie die Spalten CreatedDate / ModifiedDate hinzufügen, zum Beispiel:

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

Erstellen Sie dann einen TRIGGER die bei UPDATE ausgelöst wird um den ModifiedDate-Wert aktuell zu halten. Möglicherweise müssen Sie entscheiden, ob das ModifiedDate NULL sein soll oder gleich CreatedDate bei der Initialisierung.