A conversão de um tipo de dados varchar em um tipo de dados datetime resultou em um valor fora do intervalo |
A mensagem de erro acima é frequente em tópicos de fóruns e posts em grupos de SQL Server, seja no idioma português ou no texto original, em inglês.
Há fatores que podem confundir no momento de manipular datas no SQL Server, acarretando em erros na execução quase sempre relacionados ao desconhecimento de como o SQL Server interpreta os literais (strings) contendo data.
Por exemplo, “2020-02-29 18:12:58” é reconhecido corretamente como 29/2/2020 18:12:58 se o tipo de dados é datetime2 mas pode gerar a mensagem de erro 242 se o tipo de dados for datetime e o dateformat não esteja configurado como ymd..
Também são comuns perguntas como tempo decorrido entre duas datas ou ainda sobre dias e horas úteis, calcular idade etc. O artigo “Dominando datas e horas no Server” foi escrito com o objetivo de ser o guia definitivo sobre datas & horas.
O artigo trata do assunto de datas & horas em profundidade. No capítulo 2 é feita revisão nos principais objetos nativos relacionados a data & hora, como os tipos de dados e funções específicos, com resumo especialmente compilado para a compreensão do conteúdo do artigo sem ter que consultar a documentação para o básico.
O capítulo 3 relaciona os enganos mais comuns no dia a dia, sendo explicado o impacto da norma ISO 8601 na manipulação de datas e horas. São disponibilizadas recomendações de como efetuar a entrada de dados sem incorrer em erros de conversão automática de tipo de dados. Elucida ainda como os valores que contêm data & hora são armazenados internamente no banco de dados e também como utilizar a função datediff() sem cair na armadilha do parâmetro datepart.
O capítulo 4 contém soluções para casos frequentes que envolvem manuseio de dias úteis como cálculo de tempo decorrido entre dias (ou horas) úteis, próximo dia útil, primeiro dia útil, calcular idade etc. E modelos de como criar tabela de feriados e calendário de dias úteis.
Clique para acessar o artigo ⇒ Dominando datas e horas no SQL Server
Amém, uma alma caridosa nesse mundo que conseguiu explicar de forma clara essa questão. Que nunca conseguia entender.
Muito obrigado.
Muuuuuito bom, realmente um material extremamente util e esclarecedor, além de ser didático.
Otimo! Muito obrigada.
Excelente conteúdo, obrigado!