Estou tentando fazer algo muito simples e estou perplexo porque não está funcionando.
Eu tenho uma coluna ( sysjobschedules.next_run_date
from msdb
) que é um varchar formatado como yyyymmdd. Eu quero converter isso para um datetime. Eu uso o comando bastante direto, CONVERT(datetime,next_run_date,112)
mas continuo recebendo o erro Arithmetic overflow error converting expression to data type de dados.
Os três valores distintos nesta coluna são 20120802, 20120803 e 20120806. Usando a mesma função acima, consegui converter com sucesso todas as três strings.
Eu sinto que devo estar perdendo algo óbvio...?
A coluna é realmente armazenada como um int e significa algo diferente em datetime, então você precisará de uma etapa extra em seu CONVERT:
Para mostrar porque você não pode fazer isso diretamente para um int:
Quando é um int, na verdade é o número de dias desde 1900-01-01.