Galera, tenho uma tabela que tem a informação em registro (linha) de data inicio e data termino de determinada situação
Nome Data Inicio Data Termino Situação
EX: Vitor 21/09/06 06/10/06 Férias
Isso eu teria milhares de registros e digamos que um dia que eu resolva pegar todas as situações dos funcionário no período de 22/09/06 a 16/10/06
quando a data do registro estava depois da minhas datas que queria pegar eu usava between, mas nesse caso ele não pega, alguém saberia o que fazer??
"select * from tabelaX where data between ? and ?"
to usando between nessa situação e me atende bem. lembrando que uso java.sql.Date.
você pode usar também o método compareTo
vitorkgb
falei que nesse caso o between não funciona… se entendeu o que falei e testar vai ver quer não!!!
finotti
bom, entao tente se explicar melhor.
o que entendi foi o seguinte:
você quer fazer uma consulta por um intervalo de data, (data inicial e data final).
não consigo entender como o between não te atenda.
boa sorte ai!
vitorkgb
o between só trabalha com uma data, não com um período se eu tiver um período 21/09/08 a 06/10/08 no registro
e querer pegar todo mundo do período de 22/09/08 e 02/10/08
o between pegaria a primeira data inicial 21/09/08… está dentro do meu período?? 22/09 a 02/10?? não… e se eu fizesse com a data final idem…
mas note que o dentro do período 21/09 até 06/10 ele passa pelo período que determinei… então seria o próprio período, mas como transformar isso em sql?? pegar essa situação, ou mesmo em Java.
Fernando_Generoso_da
teus campos data inicio e data fim, sao realmente do tipo data, no banco?? ou apenas uma String que representa a data??
vitorkgb
são sim… tipo data… to usando between para outras situações… mas nessa não funciona
finotti
de onde vc tirou isso???
a tradução de between é “entre”, ou seja entre uma data e outra.
traduzindo:
TRAGA OS CAMPOS DA TABELA ONDE A DATA ESTIVER ENTRE A DATA INICIAL E A DATA FINAL.
vitorkgb
por isso que o between não me serviria…, cara tenta entender o problema e vai ver que não se aplica o between… só conhece o between? tá muito preso a ele.
vitorkgb
Se eu tenho um cara que trabalhou de 21/09/08 a 06/10/08… e digamos que eu queira todo mundo que trabalhou entre 22/09/08 a 02/10/08…, concorda que ele trabalhou dentro do período que quis?
o que vc faria??? between??? não funciona nesse caso
finotti
tentei ajudar, se não consegui, problema seu (literalmente) …
só acho que vc deveria chegar com um pouco mais de humildade.
ninguém aqui tem obrigação de responder nada.
e pra quem diz que between só trabalha com uma data, vc tá bem mascarado!
boa sorte ai!
Fernando_Generoso_da
Uma maneira é pegar TODAS as datas que o cara trabalhou…e aplicar o between do intervalo que tu deseja para cada data trabalhada do cara e verificar se está dentro…se uma estiver, é pq ao menos um dia ele trabalhou no período escolhido…acho que dessa forma dá…
vitorkgb
Finotti, não é questão disso, é que vc não análisa o problema para responder, respondeu meio que aleatoriamente, deve ser um excelente profissional!
Fernando, é o que estou entrando fazer… naum usarei o between, to pegando o intervalo dele e aplicando passando nos dias.
71C4700
Cara tive um problama parecido e era so o tipo do Date que estava utilizando, pode se isso não sei.
eu tava usando o Date do pacote util, ai quando mudei por pacote sql funcionou belezinha…
Não sei se resolve seu caso, mas são situações e erros que não cometo mais…EHheHEE
vitorkgb
valeu cara… é nos comandos sql, só aceita o Date do java.sql
eu to trabalhando justamente com esse… a consulta só pode ser nesse pacote