SqlHints.com

também, para “DateTime2” (vs. “DateTime”):

1. Usar a função “DateAdd” não é uma solução trivial por não ter uma conversão implícita / fácil para um ponto flutuante numérico (# de dias.fracção de um dia) desde min date-time, esp. você está tentando levar em conta várias (Se não todas) partes da data (ou seja, adicionar / subtrair 2 datas completas-vezes juntos / um do outro).

2. Não se pode calcular facilmente ” idade “(por exemplo, apenas subtraindo um” DateTime ” de outro vs. usando a função ” DateDiff “que não retorna” idade ” quando as duas datas-vezes acontece estar em lados opostos de um limite de calendário / relógio da unidade especificada).

3. Não se pode usar facilmente na função agregada “Avg”(por apenas “Cast”‘Ing Para “Float”primeiro e de volta para “DateTime”). Btw, se você está perguntando Qual é o propósito de obter um ” Avg ” de datas-tempos: além de usar na obtenção da duração média quando os horários (uma vez que uma data-hora de base comum) são usados para representar a duração (uma prática comum), também é útil obter para a estatística do tipo de painel sobre o que a data-hora média é em um intervalo / grupo de datas-tempos. Uma consulta ad-hoc padrão para pesquisa / resolução de problemas valores em uma coluna que pode não ser válida sempre / por mais tempo e / ou pode precisar ser desactualizada é listar para cada valor a contagem de ocorrência e (se disponível) os carimbos min, avg e data-hora max associados a esse valor.

Sim, eu percebo que há uma (muito complexo) fórmula de solução (em “https://siderite.blogspot.com/2015/08/how-to-translate-t-sql-datetime2-to.html”), mas, mesmo que a fórmula só funciona para data vezes mais recente que o ano de 1970 (o que significa que a perda de todos os extra-intervalo *plus* 217 anos e que alcance extra é, provavelmente, (supostamente) um dos 2 maiores profissionais do “DateTime2” embora provavelmente não é necessária na maioria dos casos de uso), e isso não é necessariamente trivial para torná-lo o apoio a mais de alcance devido a um possível estouro numérico problemas.

E, sim, eu percebo que você também poderia “Lançar” para “DateTime” primeiro (e, se necessário, volta novamente para “DateTime2”), mas você perderá a precisão extra e, novamente, a faixa adicional (todos os anteriores ao ano de 1753) benefícios de “DateTime2” vs. “DateTime” que, novamente, são provavelmente os 2 maiores e também, ao mesmo tempo, provavelmente não é provável que necessário, o que levanta a questão de por que usá-lo quando você perde o implícito / fácil conversões numéricos de ponto flutuante (nº de dias) para a adição / subtração / “idade” (vs. DateDiff) / Avg calques benefício, que é um grande problema na minha experiência.

Deixe uma resposta

O seu endereço de email não será publicado.

More: