Нулевая точка календаря SQL Server 1900-01-01 00:00:00 зафиксирована? - PullRequest
0 голосов
/ 02 октября 2019

Является ли эта дата «1900-01-01 00:00:00», которая является нулевой точкой в ​​календаре SQL Server, фиксированной, или она динамическая в соответствии с столетними или системными настройками или чем-то еще?

1 Ответ

1 голос
/ 02 октября 2019

Тип DateTime хранит диапазон дат и времени внутри себя как два целых числа (часть даты и часть времени), причем часть даты содержит количество дней до или после 01-01-1900 (отрицательные значения для до).

Если бы Microsoft изменила значение 0 (будь 01-01-1900) в будущем выпуске, это сделало бы недействительными данные, хранящиеся в таблице (поскольку пользователи увидели бы, что отображаются разные даты) - так что этоне произойдет.

Если им действительно потребуется изменить тип даты и времени, они выдают новый тип (скажем, datetime3), но дата-время все равно будет там - для обратной совместимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...