SQL - como faço um select entre duas datas?

Delphi

07/07/2004

Gotari der saber se alguem pode me ajudar, estou tentando fazer uma query em uma tabela que contem um campo do tipo data que lista as datas de entre um intervalo X e Y mas nao estou conseguindo. Allguem pode me ajudar??




:arrow: [color=red:4156e4e26e]Título alterado pelo Moderador oTTo. Removido ´SQL´.[/color:4156e4e26e]
:idea: [color=blue:4156e4e26e]Use sempre pesquisar no topo da página.
:idea: Seja mais claro no título.
:idea: Leia as regras de conduta do fórum.[/color:4156e4e26e]


Marcelo Batista

Marcelo Batista

Curtidas 0

Melhor post

Marisiana Battistella

Marisiana Battistella

13/06/2014

Que banco de dados você está utilizando?
Talvez vc consiga fazer funcionar usando o to_date.
select * 
from cadastros
where DataRegistro between to_date( '28/04/2014', 'dd/mm/yyyy') and to_date( '28/04/2014', 'dd/mm/yyyy') 
GOSTEI 1

Mais Respostas

Motta

Motta

07/07/2004

no sql da query faça algo assim....



SELECT *
FROM TABELA
WHERE DATA BETWEEN :D1 AND :D2

NO FORM

WITH QUERY1 DO
BEGIN
CLOSE;
PARAMS[0].ASDateTime := ....;
PARAMS[1].ASDateTime := ....;
OPEN;
END;

entre outras soluções ...


GOSTEI 0
Rômulo Barros

Rômulo Barros

07/07/2004

Regras de Conduta :arrow: http://delphiforum.icft.com.br/forum/viewtopic.php?t=6689&sid=a6a9c1313d4f5601b5a3be0d19f08033


[color=red:5a77c27507]2- Não poste mensagens com o título ou o texto em maiúsculas, isto é
extremamente desagradável, equivale a GRITAR. Além de ser desagradável de ler, é injusto, pois faz com que sua mensagem tenha mais destaque que as demais. [/color:5a77c27507]

[color=red:5a77c27507]3- Use sempre um título que dê uma idéia do conteúdo da mensagem e que seja o mais objetivo possível. Com isto, você conseguirá atrair um número maior de pessoas interessadas no tema. [/color:5a77c27507]


GOSTEI 0
Hatrix

Hatrix

07/07/2004

Tente usar:

select ´CAMPOS´ from ´TABELA´
where
´CAMPO_DATA´ between ´DATA1´ and ´DATA2´

as datas deve estar no formado MM/DD/YYYY ou YYYY/MM/DD


GOSTEI 0
Hatrix

Hatrix

07/07/2004

Tente usar:

select ´CAMPOS´ from ´TABELA´
where
´CAMPO_DATA´ between ´DATA1´ and ´DATA2´

as datas deve estar no formado MM/DD/YYYY ou YYYY/MM/DD


GOSTEI 0
Marcelo Batista

Marcelo Batista

07/07/2004

Certo, este eh problema. eu criei uma tabela em paradox do tipo date e nao consigo fazer isso, o comando me retorna tipos incompativeis.

Ja aproveitando eu nao consigo inserir em um campo do tipo data vinda de um maskedit com o caratere literal que seria ´00/00/00´ e tambem sem ele ´000000´ nao funciona nenhum dos dois.



Tente usar: select ´CAMPOS´ from ´TABELA´ where ´CAMPO_DATA´ between ´DATA1´ and ´DATA2´ as datas deve estar no formado MM/DD/YYYY ou YYYY/MM/DD



GOSTEI 0
Wellysson

Wellysson

07/07/2004

eu coloquei o código {select * from cadastros where DataRegistro between 28/04/2014 and 28/04/2014} e não consegui resultados, mesmo mudando as datas.
A coluna DataRegistro é do tipo datetime. Alguém me ajude por favor!
GOSTEI 0
Renato Motta

Renato Motta

07/07/2004

Ex: o RETORNO SERÁ ESSE:

01/07/2015
02/07/2015
03/07/2015
04/07/2015
05/07/2015

Segue código que pega a data e o intervalo entre elas.

declare @startDate date;
declare @endDate date;

select @startDate = '20150701';
select @endDate = '20150705';

with dateRange as
(
select dt = @startDate
where @startDate < @endDate
union all
select dateadd(dd, 1, dt)
from dateRange
where dateadd(dd, 1, dt) <= @endDate
)
select convert(varchar(MAX),dt,103)
from dateRange
GOSTEI 0
POSTAR