select - between 30/09/2008 and 30/09/2008 não retorna nada
olá,
tenho um formulário com consulta entre 2 datas...se eu colocar datas diferentes retorna o resultado tranquilo, por exemplo 01/09/2008 e 03/09/2008 retorna os registros...porém se eu colocar 01/09/2008 e 01/09/2009 não retorna nada..mesmo tendo registros nessa data e que apareceram na consulta com datas diferentes (01/09 - 03/09).
fiz assim: ´where venda.data_lancamento >= :dtini and venda.data_lancamento <= :dtfim´
assim:
´where venda.data_lancamento between :dtini and :dtfim´
acontece o mesmo ´problema´.
Como resolver?
tenho um formulário com consulta entre 2 datas...se eu colocar datas diferentes retorna o resultado tranquilo, por exemplo 01/09/2008 e 03/09/2008 retorna os registros...porém se eu colocar 01/09/2008 e 01/09/2009 não retorna nada..mesmo tendo registros nessa data e que apareceram na consulta com datas diferentes (01/09 - 03/09).
fiz assim: ´where venda.data_lancamento >= :dtini and venda.data_lancamento <= :dtfim´
assim:
´where venda.data_lancamento between :dtini and :dtfim´
acontece o mesmo ´problema´.
Como resolver?
Pablomezzomo
Curtidas 0
Respostas
Pestana_
30/09/2008
qual banco você está utilizando? a questão da data deve estar no formato errado.
GOSTEI 0
Pablomezzomo
30/09/2008
uso SQL, com MSDE...o extranho é q entre 2 datas com + de 1 dia de diferença a consulta roda...mas toda ajuda é bem vinda...
GOSTEI 0
Pestana_
30/09/2008
tem vários tópico falando sobre isso, de uma olhada neste dois tópicos:
http://forum.devmedia.com.br/viewtopic.php?t=97587&highlight=between
http://forum.devmedia.com.br/viewtopic.php?t=97160&highlight=between
http://forum.devmedia.com.br/viewtopic.php?t=97587&highlight=between
http://forum.devmedia.com.br/viewtopic.php?t=97160&highlight=between
GOSTEI 0
Pestana_
30/09/2008
uso SQL, com MSDE...o extranho é q entre 2 datas com + de 1 dia de diferença a consulta roda...mas toda ajuda é bem vinda...
eu trabalho com Interbase/Firebird. Você precisa consultar o formato de data do banco, acredito que deve estar errado no formato por isso que não está retornando o resultado correto.
flw.
GOSTEI 0
Nilsonalvernaz
30/09/2008
Deus Abençoe a todos.
Pablo, é o seguinte:
você tá usando o metodo:
resolvi esses problema em meu sistema da seguinte maneira
Note que coloquei Maior ou igual a data inicial e menor ou igual a data final.
ao contrário não daria certo, porém você fez a mesma coisa, dá uma revisada e vê se o problema é realmente a query. por que está igual ao que eu fiz.
Pablo, é o seguinte:
você tá usando o metodo:
where venda.data_lancamento >= :dtini and venda.data_lancamento <= :dtfim e where venda.data_lancamento between :dtini and :dtfim
resolvi esses problema em meu sistema da seguinte maneira
and DtLancamento >= :DtInicial and DtLancamento <= :DtFinal
Note que coloquei Maior ou igual a data inicial e menor ou igual a data final.
ao contrário não daria certo, porém você fez a mesma coisa, dá uma revisada e vê se o problema é realmente a query. por que está igual ao que eu fiz.
GOSTEI 0
Pablomezzomo
30/09/2008
alterei o formado pra MM/dd/yyyy porém acontece o mesmo problema
GOSTEI 0
Jair Bg
30/09/2008
Bem, observando seu problema me veio referenciada ocorrência a data, neste caso criada no BD, apesar de informado como ´data´ porém seu tipo é ´timestamp´ o que provoca uma diferença relevante a tempo ´hora´ quando passado apenas a informação data não retorna registros, tente no caso adicionar ao parâmetro como ex: between ´01/09/2008 00:00:00´ and ´01/09/2008 23:59:58´ verifique!!!
GOSTEI 0
Nilsonalvernaz
30/09/2008
meu Banco também é SQL server.
Vamos vê se podemos chegar a uma solução.
você já rodou esse Select no query analyser?
ele trás as datas que você colocou?
O formato de data que eu uso em todos os clientes é dd/mm/aaaa
nos parametros da data inicial e final como você colocou?
no meu tá assim:
Data Type = ftDatetime
Name = DtInicial ou DtFinal
NumericScale = 0
Param Type = ptInput
Precision = 0
Size = 0
Vê se o seu também está assim.
Fico no aguardo de um sim ou não
Vamos vê se podemos chegar a uma solução.
você já rodou esse Select no query analyser?
ele trás as datas que você colocou?
O formato de data que eu uso em todos os clientes é dd/mm/aaaa
nos parametros da data inicial e final como você colocou?
no meu tá assim:
Data Type = ftDatetime
Name = DtInicial ou DtFinal
NumericScale = 0
Param Type = ptInput
Precision = 0
Size = 0
Vê se o seu também está assim.
Fico no aguardo de um sim ou não
GOSTEI 0
Pablomezzomo
30/09/2008
setei os mesmos parâmetros datatype, precision, size...mas o resultado é o mesmo...query analizer eu n tenho..pq uso MSDE...acho q só tem no SQLServer full
GOSTEI 0
Pablomezzomo
30/09/2008
o formato do campo tem alguma influÊncia? gravo os valores de hora junto...no campo está armazenado assim: 24/09/2008 17:15:19
o formato no BD está datetime
o formato no BD está datetime
GOSTEI 0
Pablomezzomo
30/09/2008
fiz uma conexão ao BD usando acess (adp) e rodei a consulta com o critério:
WHERE (data_lancamento >= CONVERT(DATETIME, ´2008-09-24 00:00:00´, 102)) AND (data_lancamento <= CONVERT(DATETIME, ´2008-09-24 23:59:59´, 102))
e retornou certinho..como q passo isso (data com hora, min e segundo) no parâmetro pro delphi?
WHERE (data_lancamento >= CONVERT(DATETIME, ´2008-09-24 00:00:00´, 102)) AND (data_lancamento <= CONVERT(DATETIME, ´2008-09-24 23:59:59´, 102))
e retornou certinho..como q passo isso (data com hora, min e segundo) no parâmetro pro delphi?
GOSTEI 0
Nilsonalvernaz
30/09/2008
Da maneira que eu te passei, no meu banco a data entra tipo:
30/092008 00:00:00:00
Mas o formato que uso é dd/mm/aaaa o próprio Delphi ou banco não sei faz a conversão. estranho q não dá problema algum.
Como estou mexendo no sistema agora vou dá uma vasculhada pra ve se acho algum detalhe desapercebido.
Já tentou instalar o Management Studio 2005 para o sql server 2005 ele é de GRÁTIS e vc consegue conectar os bancos das versões anteriores
seria uma boa vc tentar pra vê como retorna a query no próprio SQL.
30/092008 00:00:00:00
Mas o formato que uso é dd/mm/aaaa o próprio Delphi ou banco não sei faz a conversão. estranho q não dá problema algum.
Como estou mexendo no sistema agora vou dá uma vasculhada pra ve se acho algum detalhe desapercebido.
Já tentou instalar o Management Studio 2005 para o sql server 2005 ele é de GRÁTIS e vc consegue conectar os bancos das versões anteriores
seria uma boa vc tentar pra vê como retorna a query no próprio SQL.
GOSTEI 0
Pablomezzomo
30/09/2008
consegui resolver passando a data no formato MM/dd/yyyy + ´00:00:00´ na data inicial e +´23:59:59´ na data final
GOSTEI 0
Julio Cesar
30/09/2008
Eu estava com o mesmo problema, resolvi de forma bem simples, apenas setei a hora nas datas, principalmente na data final, pois quando não estipulamos a data ela e pesquisada com a hora 00:00
Então simpesmente fiz da seguinte maneira:
$StartDate = date("2017-07-14 00:00");
$EndDate = date("2017-07-14 23:59");
Retornou as informações do dia 14/07/2017.
Espero que tenha ajudado!
Então simpesmente fiz da seguinte maneira:
$StartDate = date("2017-07-14 00:00");
$EndDate = date("2017-07-14 23:59");
Retornou as informações do dia 14/07/2017.
Espero que tenha ajudado!
GOSTEI 0
Julio Cesar
30/09/2008
Eu estava com o mesmo problema, resolvi de forma bem simples, apenas setei a hora nas datas, principalmente na data final, pois quando não estipulamos a data ela e pesquisada com a hora 00:00
Então simpesmente fiz da seguinte maneira:
$StartDate = date("2017-07-14 00:00");
$EndDate = date("2017-07-14 23:59");
Retornou as informações do dia 14/07/2017.
Espero que tenha ajudado!
Então simpesmente fiz da seguinte maneira:
$StartDate = date("2017-07-14 00:00");
$EndDate = date("2017-07-14 23:59");
Retornou as informações do dia 14/07/2017.
Espero que tenha ajudado!
GOSTEI 0