Consulta em node - rwsolvido

await getManager().transaction(async (transactionalEntityManager) => {
      c = await transactionalEntityManager
        .createQueryBuilder()
        .from(AuxilioPublicacao, 'a')
        .where('"a"."dataInicio" BETWEEN :dataInicio AND :dataFim ', {
          dataInicio,
          dataFim
        })
        .orWhere('"a"."dataFim" BETWEEN :dataInicio AND :dataFim ', {
          dataInicio,
          dataFim
        })
        .andWhere('"a"."vinculoChamada" =:vinculoChamada ', {
          vinculoChamada
        })
        .andWhere('"a"."excluido" = false ')
        .getOne()
      console.log('c: ' + c)
    })

Retorna vazio ou então não estou sabendo ler o retorno

Consultando no banco

SELECT * FROM "auxilio_parametrizacao" "a" 
WHERE "a"."dataInicio" BETWEEN '2021-09-02T00:00:00.000Z' AND '2021-09-30T23:59:59.000Z'
OR "a"."dataFim" BETWEEN '2021-09-02T00:00:00.000Z' AND '2021-09-30T23:59:59.000Z'
AND "a"."vinculoChamada" = 'AUXILIO_PUBLICACAO'  
AND "a"."excluido" = false

retorna registros

O que estou fazendo de errado ?

A dataInicio seria qual coluna da tabela auxilio_parametrizacao? Tente executar a consulta no banco usando exatamente os mesmos parâmetros usados na aplicação para testar.

Foi resolvido

async getByDataInicioAndDataFimAndVinculoChamada(
    params: AuxilioPublicacaoParams
  ): Promise<AuxilioPublicacaoModel | undefined> {
    let { dataInicio, dataFim, vinculoChamada } = params
    let dataI
    let dataF
    if (dataInicio && dataFim) {
     dataI = new Date(dataInicio.substring(0, 10))
      dataF = new Date(dataFim.substring(0, 10))
    }
    const accessProfileRepo = getRepository(AuxilioPublicacao)
    return await accessProfileRepo.findOne({
      where: [
        {
          vinculoChamada: Equal(vinculoChamada),
          dataInicio: Between(dataI, dataF),
          excluido: false
        },
        {
          vinculoChamada: Equal(vinculoChamada),
          dataFim: Between(dataI, dataF),
          excluido: false
        }
      ]
    })
  }

Foi resolvido assim.

1 curtida