Consulta Datas
Started By Deolinda, 16/05/2008, 11:13
9 replies to this topic
#1
Posted 16/05/2008, 11:13
Bom dia a todos
Estou a fazer uma bd sobre aniversários que me alerta para os aniversariantes no periodo de 10 dias e fiz uma consulta com os seguintes critérios
1º
Campo: Dia([Data de Nascimento])
Critério: Entre Dia(Agora()-2) E Dia(Agora()+7)
2º
Campo: Mês([Data de Nascimento])
Critério:Mês(Agora())
Isto funciona tudo muito bem quando o periodo está dentro do mesmo mes funciona, mas se o periodo está entre meses (ex:27Mai a 6Jun) já não funciona aparecem todos os registo do mes de jun.
A minha duvida é como faço o critério do mês.
Obrigada
Estou a fazer uma bd sobre aniversários que me alerta para os aniversariantes no periodo de 10 dias e fiz uma consulta com os seguintes critérios
1º
Campo: Dia([Data de Nascimento])
Critério: Entre Dia(Agora()-2) E Dia(Agora()+7)
2º
Campo: Mês([Data de Nascimento])
Critério:Mês(Agora())
Isto funciona tudo muito bem quando o periodo está dentro do mesmo mes funciona, mas se o periodo está entre meses (ex:27Mai a 6Jun) já não funciona aparecem todos os registo do mes de jun.
A minha duvida é como faço o critério do mês.
Obrigada
#2
Posted 16/05/2008, 11:18
O ideal seria você colocar a data em um único campo, do tipo date.
#3
Posted 16/05/2008, 11:22
Aí é que está... não faz! hehehe
Ao invés de separa a data em Dia e Mês, utilize a data inteira!
Isso faz toda a diferença, pois vc não trata mais como um numérico... O SGBD trata como data e ele se vira sozinho
A sintaxe varia de SGBD pra SGBD, mas se e quisesse fazer isso no PostgreSQL, seria assim:
Ao invés de separa a data em Dia e Mês, utilize a data inteira!
Isso faz toda a diferença, pois vc não trata mais como um numérico... O SGBD trata como data e ele se vira sozinho
A sintaxe varia de SGBD pra SGBD, mas se e quisesse fazer isso no PostgreSQL, seria assim:
SELECT campo_dt FROM tabela WHERE campo_dt BETWEEN (CURRENT_DATE-2) AND (CURRENT_DATE+7)
#4
Posted 16/05/2008, 11:36
Me desculpa mas não sei onde vou colocar este código
Obrigada
Obrigada
#5
Posted 16/05/2008, 11:51
Deolinda...
Ahn... que banco de dados você usa?
Como você seleciona esses dados atualmente?
Ahn... que banco de dados você usa?
Como você seleciona esses dados atualmente?
#6
Posted 16/05/2008, 16:06
Boirock
Me desculpe mais uma vez mas eu fiz a consulta no access só não sei o que significa PostgreSQL, por isso não sei onde colocar o códico que me deu. Será num evento do formuário? não sei me ajuda.
Muito obrigada
Me desculpe mais uma vez mas eu fiz a consulta no access só não sei o que significa PostgreSQL, por isso não sei onde colocar o códico que me deu. Será num evento do formuário? não sei me ajuda.
Muito obrigada
#7
Posted 16/05/2008, 16:44
Ah... bem
PostgreSQL é um outro banco de dados robusto.
É como se fosse o Access, só que bem diferente. (deu pra entender?)
O seu problema, Deolinda, é que vocÊ tem um campo pra dia e outro para mês, quando o certo seria ter um campo contendo a data completa.
Se você fizer isso, já melhora um monte. Pegou?
PostgreSQL é um outro banco de dados robusto.
É como se fosse o Access, só que bem diferente. (deu pra entender?)
O seu problema, Deolinda, é que vocÊ tem um campo pra dia e outro para mês, quando o certo seria ter um campo contendo a data completa.
Se você fizer isso, já melhora um monte. Pegou?
#8
Posted 16/05/2008, 20:18
Boirock
Se eu tiver um critério com a data completa já não tenho a data no intervalo de 10 dias.
Como posso fazer?
escrevo isto no critério= Entre Dia(Agora()-2) E Dia(Agora()+7) e como escrevo o mês.
Me desculpa se estou a fazer muitas perguntas mas não sei trabalhar muito bem com o access.
Muito obrigada
Se eu tiver um critério com a data completa já não tenho a data no intervalo de 10 dias.
Como posso fazer?
escrevo isto no critério= Entre Dia(Agora()-2) E Dia(Agora()+7) e como escrevo o mês.
Me desculpa se estou a fazer muitas perguntas mas não sei trabalhar muito bem com o access.
Muito obrigada
#9
Posted 17/05/2008, 23:37
Se você colocar o campo em formato DATE, que armazena a data completa, o banco de dados já trabalhará esse intervalo.
Você armazena a data '28/05/2008' e quer saber os 2 dias anteriores e os 7 próximos, fazendo o que boirock disse, retornará:
26/05/2008 e 04/06/2008.
Você armazena a data '28/05/2008' e quer saber os 2 dias anteriores e os 7 próximos, fazendo o que boirock disse, retornará:
26/05/2008 e 04/06/2008.
#10
Posted 18/05/2008, 19:02
Boas noite a todos
Com a vossa ajuda já consegui resolver o problemo das datas, por isso agradeço a todos quantos me ajudaram.
Obrigada
Com a vossa ajuda já consegui resolver o problemo das datas, por isso agradeço a todos quantos me ajudaram.
Obrigada
0 user(s) are reading this topic
0 membro(s), 0 visitante(s) e 0 membros anônimo(s)