none
Converter Varchar dd/mm/yyyy em datetime RRS feed

  • Pergunta

  • Bom dia pessoal!!!

    estou enfrentando um problema comum aqui no fórum...

    quem criou o BD do sistema que trabalho tratou data como VARCHAR no formato dd/mm/yyyy

    dai para fazer qualquer validação de consulta com comparação não consigo.

    já vi o forum todo e nada até agora

    gostaria de saber como fazer!!!

    SET DATEFORMAT ddmmyyyy
    SELECT ISDATE(DATA_FINAL) FROM CONTRATOS where ISDATE(DATA_FINAL) =0
    

    quarta-feira, 24 de abril de 2013 15:27

Respostas

  • louco82,

    Use o convert:

    SELECT 
      convert(datetime, DATA_FINAL, 103),
      ISDATE(convert(datetime,DATA_FINAL,103))
    FROM CONTRATOS 
    WHERE ...

    Espero ter ajudado.

    []'s!

    • Marcado como Resposta louco82 quarta-feira, 24 de abril de 2013 17:52
    quarta-feira, 24 de abril de 2013 15:46

Todas as Respostas

  • louco82,

    Use o convert:

    SELECT 
      convert(datetime, DATA_FINAL, 103),
      ISDATE(convert(datetime,DATA_FINAL,103))
    FROM CONTRATOS 
    WHERE ...

    Espero ter ajudado.

    []'s!

    • Marcado como Resposta louco82 quarta-feira, 24 de abril de 2013 17:52
    quarta-feira, 24 de abril de 2013 15:46
  • Acredito que o seu SQL esta em ingles, e o formato seria mm/dd/yyyy e quando voce vai fazer a conversão explicita da um erro de out of range, tente fazer algo assim:

    declare @variavel char(10)
    set @variavel = '24/04/2013'
    
    select cast(substring(@variavel,4,3) + left(@variavel,3) + right(@variavel,4) as datetime)


    Alexandre Matayosi Conde Mauricio.

    • Sugerido como Resposta Eduardo Mello segunda-feira, 21 de agosto de 2017 15:23
    quarta-feira, 24 de abril de 2013 15:46
  • funcionou tinha um data com 31/11/2013 e como o mes 11 não tem 31 era o meu erro !

    quarta-feira, 24 de abril de 2013 17:51