none
Comparando Datas RRS feed

  • Pergunta

  • Boa tarde pessoal. Estou tentando fazer uma comparação de Datas, porém, não estou conseguindo o resultado Esperado. Do meu programa estou enviando uma Data 11/01/2021 00:00:00:000. Sei que na tabela TEM 3 REGISTRO QUE ATENDE A MINHA SOLICITAÇÃO. Eu Não quero comparar a hora, Apenas a Data. No Bancos de Dados a Data está gravada 2021/01/11 13:14:00:000. E PROCUREI NA INTERNET E ENCONTREI UMA SOLUÇÃO, PORÉM, NÃO ESTÁ RETORNANDO OS MEUS DADOS. ALGUÉM PODERIA VERIFICAR A MINHA PROCEDURE E VERIFICAR ONDE ESTOU ERRANDO?
    DROP PROCEDURE CONTASARECEBER_PESQUISA_NUMEROFILIALSITUACAOLANCAMENTODATAVENCIMENTODIA
    GO
    CREATE PROCEDURE CONTASARECEBER_PESQUISA_NUMEROFILIALSITUACAOLANCAMENTODATAVENCIMENTODIA(
    	@Numero_Filial			INT,
    	@Situacao_Lancamento 	CHAR(1),
    	@Data_Vencimento		DATETIME
    )
    AS 
    	BEGIN
    		SELECT	CR.CodigoID, CR.Numero_Filial, F1.Nome_Filial, CR.Serie_Lancamento, CR.Numero_Lancamento, CR.Data_Lancamento, 
    				CR.Situacao_Lancamento, CR.Codigo_Banco, CR.Numero_Agencia, CR.Numero_Conta, CR.Numero_Cheque, CR.CpfCnpj_Cliente, 
    				I.Nome_Inquilino, CR.Numero_Documento, CR.Data_Emissao, CR.Codigo_TipoDocumento, CR.Codigo_FinalidadeDocumento, 
    				CR.Codigo_TipoOperacao, CR.Valor_Documento, CR.Data_Vencimento, CR.Valor_Desconto, CR.Motivo_Desconto, 
    				CR.Valor_Pagamento, CR.Data_Pagamento, CR.Observacao, CR.Numero_Usuario, U.Usuario
    		from tbContasaReceber as CR
    				inner join tbFiliais as F1 on F1.Codigo_Filial = CR.Numero_Filial
    				inner join tbInquilinos as I on I.CpfCnpj_Inquilino = CR.CpfCnpj_Cliente
    				inner join tbUsuarios as U on U.Numero_Usuario = CR.Numero_Usuario
    		WHERE	( (CR.Numero_Filial = @Numero_Filial ) OR ( @Numero_Filial = '0' ) ) 
    				AND ( CONVERT(nvarchar(10), CR.Data_Vencimento, 103) = ( @Data_Vencimento ) )
    				AND ( ( CR.Situacao_Lancamento = @Situacao_Lancamento ) OR ( @Situacao_Lancamento = 'A' ) )
    					ORDER BY CR.Numero_Lancamento ASC 
    	END
    GO
    

      Garibaldo
    segunda-feira, 11 de janeiro de 2021 16:19

Respostas

  • Boa tarde gapimex, Não deu certo. Eu recriei a minha procedure, porém, o resultado foi o mesmo. Não trouxe nenhuma informação.
    segunda-feira, 11 de janeiro de 2021 21:17

Todas as Respostas

  • Boa tarde,

    Segue uma sugestão para testes:

    				AND ( CAST(CR.Data_Vencimento AS DATE) = @Data_Vencimento )

    Espero que ajude


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

    segunda-feira, 11 de janeiro de 2021 17:01
  • Boa tarde gapimex, Não deu certo. Eu recriei a minha procedure, porém, o resultado foi o mesmo. Não trouxe nenhuma informação.
    segunda-feira, 11 de janeiro de 2021 21:17
  • Qual é o tipo de dados da coluna Data_Vencimento no banco de dados?

    Você tentou fazer uns testes dessa procedure pelo SQL Server Management Studio?

    Ocorre algum erro se somente para teste você enviar através do seu programa o dia 15/01/2011 como parâmetro?


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

    terça-feira, 12 de janeiro de 2021 12:16
  • Bom dia Gapimex

    USE GLIMOBILIARIA

    SELECT * FROM tbContasaReceber
    WHERE Numero_Filial = '1' 
    AND ( CAST(Data_Vencimento AS DATE) = '11/01/2021' )
    AND (Situacao_Lancamento = 'A')

    O Teste do MSSMS funcionou. Quando eu coloco a Data '11/01/2021'. Quando eu envio do sistema a data vem da seguinte forma: '11/01/2021 00:00:00:000'. Outra coisa: Os dados da Data são gravadas DATETIME. Tem alguma forma de enviar a Data do Sistema sem os zeros?

    Garibaldo

    terça-feira, 12 de janeiro de 2021 14:04
  • Acho que os zeros no horário não estão atrapalhando, mas uma coisa que você pode fazer é alterar o tipo de dados do parâmetro de DateTime para Date.

    Não sei qual linguagem você está utilizando no seu sistemas, mas acho melhor você postar o código que você está utilizando para passar os parâmetros e executar essa consulta.


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

    terça-feira, 12 de janeiro de 2021 17:42
  • Gapimex boa tarde. Funcionou. O que eu Fiz. Eu recriei todos os indices das tabelas e usei a instrução que você me passou. Funcionou certinho.  

    Acredito que algum índice poderia está baleado.

    Muito obrigado

    terça-feira, 12 de janeiro de 2021 18:07