Estou trabalhando com uma tabela onde a data e hora de um evento são armazenadas como um char no formato AAAMMDDHHmmSS ou '20120606122012'. Preciso comparar isso com o registro de data e hora atual para ver se já se passaram mais de 20 minutos desde que o evento aconteceu, mas isso parece ser mais difícil do que eu esperava.
É possível fazer isso, ou se não: existe uma abordagem diferente que funcione?
Faça alguma manipulação de string para colocar sua string no formato
YYYYMMDD HH:mm:SS
e você pode converter/converter paradatetime
.Algo assim:
Você também pode adicioná-la como uma coluna computada ou torná-la parte de uma exibição, para que não precise executar o cálculo repetidamente em cada consulta.
Como uma coluna calculada:
Como o cálculo é determinístico, ele pode ser persistido e/ou indexado.
Usando uma visualização:
Então você pode simplesmente dizer:
Embora eu tenha que concordar com os outros - você precisa consertar o modelo. Não há nenhuma vantagem em armazenar isso como uma string, exceto que seus usuários não recebem mensagens de erro incômodas quando inserem lixo não datado como
whosawatsa
ou mesmo20120230000000
.