none
Stored Procedure chamando uma VIEW RRS feed

  • Pergunta

  • Ola,

    Tenho uma SP, mais ou menos assim:

    Declare @Inicial datetime ,
    @Final datetime 
    Select 
    Nome,
    Numero,
    Tipo,
    Numero_Documento as Documento,
    Ano,
    data,
    servidor,
    Convert(varchar(11),@Inicial,103) as Inicial,
    Convert(Varchar(11),@Final,103) as Final
    From uvw_nada_consta
    Where
    Data Between Convert(varchar(11),@Inicial,103) and Convert(varchar(11),@Final,103)

    Quando executo
    EXEC SP '2022-01-01', '2022-08-11'

    Retorna cerca de 12000 mil registros

    Porem quando executo a instrução direto na SP

    SELECT nome,
    numero,
    Tipo AS tipo,
    numero_documento,
    ano, 
    CONVERT(varchar(11), Data_consulta, 103) AS data, 
    servidor,
    Convert(varchar(11),@Inicial,103) as Inicial,
    Convert(Varchar(11),@Final,103) as Final
    FROM NadaConsta JOIN
    TipoNadaConsta 
    ON id_tipo_documento = TipoNadaConsta.id_tipo_documento
    Where Processo.NadaConsta.data_consulta Between Convert(varchar(11),@Inicial,103) And Convert(varchar(11),@Final,103)

    Me Retorno 1383 mil Registros

    Porque isto acontece?
    gostaria de entender.

    Maricelmo

    sexta-feira, 26 de agosto de 2022 12:49

Respostas

  • Boa tarde,

    Você está convertendo a coluna com a data para Varchar utilizando o estilo 103 na View?

    Se estiver, o filtro por data não vai funcionar utilizando esse estilo, para filtrar acho melhor manter a coluna com o tipo Date ou semelhante na View.

    Espero que ajude


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

    • Marcado como Resposta Maricelmo segunda-feira, 29 de agosto de 2022 12:01
    sexta-feira, 26 de agosto de 2022 16:59
  • Maricelmo,

    A maneira como você esta passando os valores de data para serem utilizados como parâmetro na execução da sua Stored Procedure.

    Vale ressaltar que por padrão o SQL Server respeita a formatação do idioma do sistema operacional para apresentar as datas, mas a forma de armazenamento física é sempre no formato em inglês, independente do idioma utilizado pela servidor ou estação de trabalho que esteja solicitando os dados.


    Pedro Antonio Galvão Junior [MSc. | MVP | MCC | MSTC | MIE | MTAC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    • Marcado como Resposta Maricelmo segunda-feira, 29 de agosto de 2022 12:01
    domingo, 28 de agosto de 2022 20:22

Todas as Respostas

  • Boa tarde,

    Você está convertendo a coluna com a data para Varchar utilizando o estilo 103 na View?

    Se estiver, o filtro por data não vai funcionar utilizando esse estilo, para filtrar acho melhor manter a coluna com o tipo Date ou semelhante na View.

    Espero que ajude


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

    • Marcado como Resposta Maricelmo segunda-feira, 29 de agosto de 2022 12:01
    sexta-feira, 26 de agosto de 2022 16:59
  • Maricelmo,

    A maneira como você esta passando os valores de data para serem utilizados como parâmetro na execução da sua Stored Procedure.

    Vale ressaltar que por padrão o SQL Server respeita a formatação do idioma do sistema operacional para apresentar as datas, mas a forma de armazenamento física é sempre no formato em inglês, independente do idioma utilizado pela servidor ou estação de trabalho que esteja solicitando os dados.


    Pedro Antonio Galvão Junior [MSc. | MVP | MCC | MSTC | MIE | MTAC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    • Marcado como Resposta Maricelmo segunda-feira, 29 de agosto de 2022 12:01
    domingo, 28 de agosto de 2022 20:22
  • Ola,

    Obrigado a todos,

    imaginei que seria isto mesmo.

    vou refazer minha consulta.


    Maricelmo

    segunda-feira, 29 de agosto de 2022 12:02