O que é a representação interna de data e hora no sql server?
-
16-09-2019 - |
Pergunta
Qual é a estrutura de dados subjacente da data e hora valores armazenados no SQL Server (2000 e 2005 se for diferente)? Ou seja, até a representação byte?
Provavelmente a representação padrão que você começa quando você seleciona uma coluna de data e hora é um valor específico cultura / sujeito a mudança. Ou seja, alguma estrutura subjacente que não vemos está sendo formatado para AAAA-MM-DD HH: MM:. SS.mmm
A razão que eu peço é que há uma opinião generalizada de no meu departamento que ele é armazenado na memória literalmente como AAAA-MM-DD HH: MM:. SS.mmm mas estou certo de que este não é o caso
Solução
É href="https://technet.microsoft.com/en-us/library/ms186724.aspx" armazenado como um campo de 8 bytes , capazes de um alcance a partir de 1753/01/01 a 9999-12-31, com precisão de 0.00333 segundos.
Os detalhes são supostamente opaco, mas a maioria dos recursos (1) , (2) que eu encontrei sobre o estado web o seguinte:
Os primeiros 4 bytes armazenar o número de dias desde época do SQL Server (1 de janeiro de 1900) e que o segundo 4 bytes armazena o número de carrapatos após a meia-noite, onde um "tick" é de 3,3 milissegundos.
Os primeiros quatro bytes são assinados (pode ser positivo ou negativo), o que explica porque datas anteriores à da época pode ser representado.