Ir para conteúdo
Fórum Script Brasil
  • 0

Travamento De Consulta Usando Parâmetro Data


Monica Tinoco

Pergunta

Oi pessoal,

estou com um problema ao executar qualquer consulta no sql. O estranho é que são consultas que já funcionavam antes.

Se eu passo o parâmetro direto ela roda em 10 segundos, se eu passo o parâtro ela até roda mas demora mais de 8 minutos.

Alguém já viu este problema?

Ex.:

SET NOCOUNT ON

DECLARE

@inicio DATETIME,

@fim DATETIME,

@chr_inicio CHAR(10),

@chr_fim CHAR(10)

SET @chr_inicio = '01/07/2007'

SET @chr_fim = '04/07/2007'

SET @chr_inicio = SUBSTRING(@chr_inicio, 7, 4) + '-' + SUBSTRING(@chr_inicio, 4, 2) + '-' + SUBSTRING(@chr_inicio, 1, 2)

SET @chr_fim = SUBSTRING(@chr_fim, 7, 4) + '-' + SUBSTRING(@chr_fim, 4, 2) + '-' + SUBSTRING(@chr_fim, 1, 2)

SET @inicio = CONVERT(DATETIME, @chr_inicio + ' 00:00:00')

SET @fim = CONVERT(DATETIME, @chr_fim + ' 23:59:59')

SELECT data_lamin = CONVERT(CHAR(10), lam.data, 103),

hora_lamin = CONVERT(CHAR(5), lam.data, 108),

OPM ,

OPO

FROM pm (NOLOCK)

INNER JOIN lam (NOLOCK) ON lam.OPM = pm.OPM

WHERE lam.data BETWEEN @inicio AND @fim

Como eu disse se eu passar como abaixo, ele roda:

WHERE lam.data BETWEEN '2007-07-01 00:00' AND '2007-07-04 23:59'

Obrigada.

Mônica

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

talvez ele demore pra montar a data no formato que você quer. mas eu to vendo que essa sua data não é um parametro que vem de fora, mas sim uma variavel criada dentro da propria procedure e, ainda por cima, o valor delas é atribuido dentro da propria procedure.

nesse caso, se no modo antigo:

WHERE lam.data BETWEEN '2007-07-01 00:00' AND '2007-07-04 23:59'

que alem de ser bem mais simples, funcionava certinho, porque você quer trocar pra essa forma toda complicada??

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Gesiel --

Monica,

veja se melhora declarando @inicio e @fim como SMALLDATETIME. Olhe os resultados:

1) como datetime:

2007-01-07 00:00:00.000

2) como smalldatetime:

2007-01-07 00:00:00

é sutil, mas pode ser a diferença.

abraço.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...