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

(Resolvido) Consulta com data,que não está dando certo.


Rafael Gazzatte

Pergunta

Amigos,bom dia,aqui estou eu e com uma duvida,e mais uma vez referente a datas,

existe um registro no banco de dados assim :

Onde a máquina tem o inicio em 20/09/2011;

e a máquina tem o final em 21/09/2011

use [BD_PRINCIPAL_MES]

--Datas (início e final)

declare @DT_I as DateTime
declare @DT_F as Datetime

--Horas-------------------

declare @HR0 as datetime
declare @HR6 as datetime
declare @HR14 as datetime
declare @HR22 as datetime
declare @HR599 as datetime
declare @HR1399 as datetime
declare @HR2199 as datetime
declare @HR2399 as datetime

--Parametros---------------

set @DT_I = '20110920'
set @DT_F = '20110921'
set @HR0 = '00:00:00'
set @HR6 = '06:00:00'
set @HR14 = '14:00:00'
set @HR22 = '22:00:00'
set @HR599 = '05:59:59'
set @HR1399 = '13:59:59'
set @HR2199 = '21:59:59'
set @HR2399 = '23:59:59'
Passei primeiramente uns parametros e abaixo fiz o corpo da consulta :
SELECT ID_MAQUINA_PARADAS,DT_INICIO ,DT_FIM 
,CONVERT(VARCHAR(19),DT_INICIO,103) AS DT_INI
,CONVERT(VARCHAR(19),DT_INICIO,108) AS HRA_INI
,CONVERT(VARCHAR(19),DT_FIM,103) AS DT_FIN
,CONVERT(VARCHAR(19),DT_FIM,108) AS HR_FIN
,DATEDIFF(MINUTE,DT_INICIO,DT_FIM)  AS TMIN FROM SPI_TB_MAQUINA_PARADAS
WHERE (ID_MAQUINA_PARADAS = 449935) and DT_INICIO >= @DT_I and DT_FIM <= @DT_F
Com a consulta acima,não obtenho resultados, mas com o codigo abaixo apenas utilizando como parametro
SELECT ID_MAQUINA_PARADAS,DT_INICIO ,DT_FIM 
,CONVERT(VARCHAR(19),DT_INICIO,103) AS DT_INI
,CONVERT(VARCHAR(19),DT_INICIO,108) AS HRA_INI
,CONVERT(VARCHAR(19),DT_FIM,103) AS DT_FIN
,CONVERT(VARCHAR(19),DT_FIM,108) AS HR_FIN
,DATEDIFF(MINUTE,DT_INICIO,DT_FIM)  AS TMIN FROM SPI_TB_MAQUINA_PARADAS
WHERE (ID_MAQUINA_PARADAS = 449935) and DT_INICIO >= @DT_I

Quando rodo a consulta acima,tenho um resultado que é justamente o que estou procurando.

O Grande x da questão,o que eu fiz de errado na primeira consulta para não obter resultados,afinal eu declarei a

DT_F com a data que eu queria,ou eu declarei errado?

Obrigado mais uma vez a ajuda de todos,consultas com datas é o que ando apanhando mais ultimamente,rs.

A minha meta nessa consulta era utilizar um range,que a data inicial seja maior ou igual a DT_I, and , data final seja menor ou igual DT_F.

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Boa tarde Rafael,

Dê uma olhada no resultado da segunda consulta: há registros que são menores que q @DT_F? Se tiver, dê uma olhada nas horas.

Apenas para esclarecer: no sql, quando você coloca a data 21-09-2011 e não coloca as horas, o sql interpreta esta data sendo 21-09-2011 00:00:00.000.

Se colocar: Data > 21-09-2011, teoricamente você quer as datas a partir de 22-09-2011. Mas temos q levar em consideração as horas na data. O sql pegará desde às 00:00 horas do dia 21 em diante.

Link para o comentário
Compartilhar em outros sites

  • 0

Fulvio,bom dia!

Está certo,eu coloquei aqui a mesma consulta com data 22,e obtive resultados,o que estava matando provavelmente era o fato de eu estar colocando data 21 sem o horario,como você mesmo disse,entrava com "00:00:00.000",o que era o suficiente para já não pegar o registro que eu queria.

Muito Obrigado Fulvio,me ajuda sempre,não sabia desse fato de que quando colocava apenas data o SQL zerava o horario.

Precisando de qualquer coisa que eu possa ajudar,estamos aqui.

Forte 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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...