O que você quer fazer é pegar sua "combinação horrorosa" e adaptá-la para converter esses pares inteiros em valores de data e hora. Em seguida, testar o heck fora dele com tantos casos de borda como você pode chegar a, talvez até mesmo verificar manualmente contra um subconjunto aleatório de seus dados reais. Se você tiver muita sorte, poderá usar o código existente que exibe seus dados como uma string e escrever um script que compare a saída do seu código de conversão com a saída real para garantir que todas as instâncias se alinhem e garantam a perfeição.
Quando o código estiver pronto, use-o exatamente uma vez para copiar os dados para uma nova coluna de data e hora que você adicionará à tabela para essa finalidade. Depois disso, remova a coluna antiga e renomeie a nova para corresponder ao nome antigo. Agora atualize qualquer código que insira / atualize / leia a partir da coluna original para usar um tipo de dados datetime. Então nunca mais fale sobre isso.
Para que tudo isso ocorra sem problemas, você precisará coordenar a execução dos scripts de ajuste da tabela com a implantação do novo código do aplicativo. Se este é um aplicativo 24/7 que pode ser complicado, mas o resultado deve valer a pena.