Chociaż kopalnia nie jest odpowiedzią na pytanie chciałem wspomnieć jak TIMESTAMP
może być źle zrozumiane.
W swoim pytaniu nie podajesz, że używasz kolumny TIMESTAMP
, ale fakt, że próbujesz ją zaktualizować, implikuje (dla mnie), że próbujesz nagrywać, gdy zmieniają się twoje dane.
Spójrz na this article (jest też wiele innych w Internecie) dotyczących korzystania z TIMESTAMP
, kiedy rzeczywiście chcesz nagrać zmianę za pomocą DATETIME
.
BOL mówi:
SQL Server timestamp Typ danych nie ma nic wspólnego z czasami i datami. Znaczniki czasowe serwera SQL są liczbami binarnymi , które wskazują na względną sekwencję, w której modyfikacje danych miały miejsce w bazie danych. Typ danych znacznika czasu był pierwotnie wdrożony w celu obsługi algorytmów odzyskiwania SQL Server .
Jak Damien_The_Unbeliever mówi typ został przemianowany i opis mówi: typ danych
rowversion jest tylko zwiększając ilość i nie zachować datę lub godzinę.Aby zarejestrować datę lub godzinę , należy użyć typu danych datetime2: .
Oczywiście, jeśli używasz typ danych w sposób zamierzony ignorować wszystkie powyższe :)
Bardzo intuicyjny nazywanie go, czy to nie jest ....: P –
@JacquesBosch - Zgadzam się, że jest to bardzo mylące –