none
conversao de data RRS feed

  • Pergunta

  • Boa tarde!

    Estou precisando de uma ajuda de vocês.

    Tenho dois  que estão em tabelas diferentes e que precisam ser comparados : competência e data_atualização
    Sendo que competência é formada por ano e mês (ex.: 201607) e data_atualização é campo datetime (Ex.: 2016-08-11 13:26:43.000 )

    Preciso que a view me traga os registros que são menores que a data_atualização.

    Estou apanhando para montar essa estrutura ...

    Só consegui trazer alguns resultados quando eu faço uma "gambiarra" só que pode ocorrer erros.

    Tentei montar da seguinte forma:

    SELECT CONTRATO,  (orc.ORC_EV_COMP +''+'28') AS NOVA_COMP, DATA_ATT, EV_TIPO, NEGOCIO, GRUPO,  EVENTO_ORÇADO, RLIQUIDO, RBRUTO from EVENTOS_T  INNER JOIN ORCAMENTO_EVENTO_T  orc on ev.ID = orc.ORC_EV_CONTRATO where ev.ID = 382 
    AND  (orc.ORC_EV_COMP +''+'28') < EV.EV_DATA_ATT
    alguém poderia me ajudar ??
    terça-feira, 16 de agosto de 2016 19:04

Respostas

Todas as Respostas

  • Olá Carine procure criar uma coluna auxiliar na view que seria o campo de competência convertido em data, seria tipo a última data do mês. Tipo:

    Competência =201607

    Auxiliar = 31/07/2016

    Utilize algumas variáveis auxiliares para conseguir fazer a conversão algo do tipo abaixo:

    Declare @diaCompetencia int
    Declare @mesCompetencia int
    Declare @anoCompetencia int

    Declare @dataAtulizacao DateTime

    --Campo composto por ano mes
    Set @Competencia = '201607'

    --Transformando competencia em data
    set @diaCompetencia = 1
    set @mesCompetencia = CAST(SUBSTRING(@Competencia, 5, 2) AS int) + 1
    set @anoCompetencia = SUBSTRING(@Competencia, 1, 4)

    set @dataCompetencia = CAST(str(@anoCompetencia) + '-' + Str(@mesCompetencia) + '-' + str(@diaCompetencia) as datetime)

    set @dataCompetencia = DATEADD(d,-1, @dataCompetencia)

    Você pode simplificar o código acima e por fim você utiliza essa coluna auxiliar para comparar com a coluna data_atualização.

    Ficou um pouco mais claro?

    Att,

    Luiz

    terça-feira, 16 de agosto de 2016 19:40
  • Boa tarde, 

    Carine, experimente fazer uns teste dessa forma:

    where 
        ev.ID = 382 AND  
        orc.ORC_EV_COMP < CONVERT(CHAR(6), EV.EV_DATA_ATT, 112)

    Espero que ajude


    Assinatura: http://www.imoveisemexposicao.com.br

    • Marcado como Resposta carine.couto terça-feira, 16 de agosto de 2016 20:10
    terça-feira, 16 de agosto de 2016 20:04
  • Muito obrigada !
    Deu certo!
    terça-feira, 16 de agosto de 2016 20:10
  • Obrigada!
    terça-feira, 16 de agosto de 2016 20:10