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

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top