Desafio dos milissegundos
Encontrei esse desafio em um post no blog SQL Authority. Depois de uns dois minutos olhando para a query, descobri o segredo, e percebi como não prestamos tanta atenção ao que está em frente aos nossos olhos como deveríamos.
Segue o desafio para você. A resposta está no final do post, beeem lá em baixo, para evitar spoiler!
Execute este script no SQL Server:
Agora observe o resultado:
A hora da coluna FirstVal termina com 690 milissegundos. Mas a coluna SecondVal terminal com 70 milissegundos. Só que no SELECT, ambas são iguais.
Aqui vai o desafio: Por que o resultado do SELECT apresenta valores diferentes?
A resposta está lá embaixo.
.
.
.
.
.
10
.
.
.
.
.
9
.
.
.
.
.
8
.
.
.
.
.
7
.
.
.
.
.
6
.
.
.
.
.
5
.
.
.
.
.
4
.
.
.
.
.
3
.
.
.
.
.
2
.
.
.
.
.
1
.
.
.
.
.
Resposta:
A coluna FirstVal usa 34.69 (ponto decimal), o que significa 69/100 de um segundo.
A coluna SecondValues usa 34:69 (dois pontos), o que significa 69 milissegundos. E o SQL Server exibe os milissegundos com 3 posições. Por isso, fica 070!