trvanjos 0 Denunciar post Postado Setembro 6, 2011 Boa tarde a todos, Venho aqui pedir uma ajuda, Preciso fazer uma com consulta em MySQL que liste 15 dias depois e 15 dias antes do dia atual. Consegui listar os do 15 dias depois vejam: select campo_tabela, date_format(campo_data,'%d/%m/%Y')as data from tabela where day(campo_data) = day(curdate()+15) Está correto ? Alguém pode me dar uma mão? Obrigado ! Compartilhar este post Link para o post Compartilhar em outros sites
rmlm 0 Denunciar post Postado Setembro 6, 2011 Bem eu não estou a perceber... Como é que queres obter registos no futuro? Você que mostrar os registos 15 dias depois da data em que estamos... a não ser que tenha criado registos com datas adiantadas. 15 dias antes da data actual é possível, porque é passado. A sua Query também me parece mal, pois você só mostra os registos que tem a data actual + 15 dias. Comparar apenas os dias também não é correcto pq tem que ter em conta os meses e anos... Se puder explicar melhor o problema e meter a tabela aqui será mais fácil de lhe dar a resolução. Cumps :) Compartilhar este post Link para o post Compartilhar em outros sites
trvanjos 0 Denunciar post Postado Setembro 6, 2011 Bem eu não estou a perceber... Como é que queres obter registos no futuro? Você que mostrar os registos 15 dias depois da data em que estamos... a não ser que tenha criado registos com datas adiantadas. 15 dias antes da data actual é possível, porque é passado. A sua Query também me parece mal, pois você só mostra os registos que tem a data actual + 15 dias. Comparar apenas os dias também não é correcto pq tem que ter em conta os meses e anos... Se puder explicar melhor o problema e meter a tabela aqui será mais fácil de lhe dar a resolução. Cumps :) Primeiramente obrigado por responder, Bom vamos la, na minha tabela tenho registros de vários anos 1998-1999 etc etc, eu tenho que desprezar o ano e ficar só com o o dia e mês exemplo: hoje é dia 6 quero mostrar os registros de 15 dias depois do dia 6. 06/09 + 15 = 21/09, então irei mostrar apenas os registros que começarem com o dia 21 e ao contrário a mesma coisa exemplo: hoje é dia 06/09-15 = 22/08 irei exibir apenas os registros do dia 22/08 Fui mais claro? Obrigado ! Compartilhar este post Link para o post Compartilhar em outros sites
rmlm 0 Denunciar post Postado Setembro 6, 2011 Bem eu não estou a perceber... Como é que queres obter registos no futuro? Você que mostrar os registos 15 dias depois da data em que estamos... a não ser que tenha criado registos com datas adiantadas. 15 dias antes da data actual é possível, porque é passado. A sua Query também me parece mal, pois você só mostra os registos que tem a data actual + 15 dias. Comparar apenas os dias também não é correcto pq tem que ter em conta os meses e anos... Se puder explicar melhor o problema e meter a tabela aqui será mais fácil de lhe dar a resolução. Cumps :) Primeiramente obrigado por responder, Bom vamos la, na minha tabela tenho registros de vários anos 1998-1999 etc etc, eu tenho que desprezar o ano e ficar só com o o dia e mês exemplo: hoje é dia 6 quero mostrar os registros de 15 dias depois do dia 6. 06/09 + 15 = 21/09, então irei mostrar apenas os registros que começarem com o dia 21 e ao contrário a mesma coisa exemplo: hoje é dia 06/09-15 = 22/08 irei exibir apenas os registros do dia 22/08 Fui mais claro? Obrigado ! Ah já percebi! Sendo assim, a query está bem.. deve é comparar também o mes Compartilhar este post Link para o post Compartilhar em outros sites
trvanjos 0 Denunciar post Postado Setembro 6, 2011 Bem eu não estou a perceber... Como é que queres obter registos no futuro? Você que mostrar os registos 15 dias depois da data em que estamos... a não ser que tenha criado registos com datas adiantadas. 15 dias antes da data actual é possível, porque é passado. A sua Query também me parece mal, pois você só mostra os registos que tem a data actual + 15 dias. Comparar apenas os dias também não é correcto pq tem que ter em conta os meses e anos... Se puder explicar melhor o problema e meter a tabela aqui será mais fácil de lhe dar a resolução. Cumps :) Primeiramente obrigado por responder, Bom vamos la, na minha tabela tenho registros de vários anos 1998-1999 etc etc, eu tenho que desprezar o ano e ficar só com o o dia e mês exemplo: hoje é dia 6 quero mostrar os registros de 15 dias depois do dia 6. 06/09 + 15 = 21/09, então irei mostrar apenas os registros que começarem com o dia 21 e ao contrário a mesma coisa exemplo: hoje é dia 06/09-15 = 22/08 irei exibir apenas os registros do dia 22/08 Fui mais claro? Obrigado ! Ah já percebi! Sendo assim, a query está bem.. deve é comparar também o mes O mês atual com o da tabela ? Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Setembro 6, 2011 ... 15 dias depois e 15 dias antes do dia atual. ... select campo_tabela, date_format(campo_data,'%d/%m/%Y')as data from tabela where day(campo_data) between day(curdate()-15) and day(curdate()+15) Compartilhar este post Link para o post Compartilhar em outros sites
trvanjos 0 Denunciar post Postado Setembro 6, 2011 ... 15 dias depois e 15 dias antes do dia atual. ... select campo_tabela, date_format(campo_data,'%d/%m/%Y')as data from tabela where day(campo_data) between day(curdate()-15) and day(curdate()+15) Obrigado rmlm e Motta, pela ajuda, não obtive sucesso na consulta, mas o fórum está de parabéns em alguns minutos fui respondido ! Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Setembro 6, 2011 :) select campo_tabela, date_format(campo_data,'%d/%m/%Y')as data from tabela where campo_data between curdate()-15 and curdate()+15 Compartilhar este post Link para o post Compartilhar em outros sites
trvanjos 0 Denunciar post Postado Setembro 6, 2011 :) select campo_tabela, date_format(campo_data,'%d/%m/%Y')as data from tabela where campo_data between curdate()-15 and curdate()+15 Perfeito ! Obrigado Motta ! Quando eu tento ver se tem algum registro de 15 dias antes(-15) o MySQL me volta a consulta vazia, sem nenhum resultado porém quando ponho 15 dias depois (+15) ele me volta todos os dias 21 da tabela. A minha pergunta é, o MySQL quando subtraio -15 do dia ele muda de mês 06/09 - 15 = 22/08 porém não me retorna nenhum resultado, o mesmo ocorre quando tento colocar +30 vejam : select date_format(datanasc,'%d/%m/%Y')as data from alunos where day(datanasc) = day(curdate()-15) essa consulta não me volta nada select date_format(datanasc,'%d/%m/%Y')as data from alunos where day(datanasc) = day(curdate()+15) essa me volta todos os registros do dia 21. Eu tenho que diferenciar o mês ? Obrigado ! Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Setembro 6, 2011 Rode sem a condição de data e veja o que retorna. Compartilhar este post Link para o post Compartilhar em outros sites
trvanjos 0 Denunciar post Postado Setembro 7, 2011 Rode sem a condição de data e veja o que retorna. Ok irei testar e posto a resposta, Obrigado Motta ! Compartilhar este post Link para o post Compartilhar em outros sites
trvanjos 0 Denunciar post Postado Setembro 8, 2011 Bom dia, Testei sem a condição de data e o mesmo não me retorna nenhum valor, dos 15 dias antes ! Continua a mesma coisa, se eu colocar +15 ele me mostra todos os registros do dia 23. Será que ele não está mostrando nenhum registro porque ele retorna um número negativo ? 08 - 15 = -7, e não existe dia negativo ! É isso ? Obrigado pela atenção Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Setembro 8, 2011 Creio que não retorne pq não tem. Compartilhar este post Link para o post Compartilhar em outros sites
trvanjos 0 Denunciar post Postado Setembro 8, 2011 Olá Motta, tudo bem ? Há registros, pois quando faço um Select especificando o dia e mês ele me retorna os registros do dia 07/08 Abraços Obrigado ! Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Setembro 8, 2011 Minha pergunta é, se você rodar a query select campo_tabela, date_format(campo_data,'%d/%m/%Y')as data from tabela order by campo_data existem registros na condição de 15 dias antes ? 15 dias após ? pois creio que a condição where campo_data between curdate()-15 and curdate()+15 funcione. em todo caso teste com adddate e date-sub. Compartilhar este post Link para o post Compartilhar em outros sites
trvanjos 0 Denunciar post Postado Setembro 8, 2011 Minha pergunta é, se você rodar a query select campo_tabela, date_format(campo_data,'%d/%m/%Y')as data from tabela order by campo_data existem registros na condição de 15 dias antes ? 15 dias após ? pois creio que a condição where campo_data between curdate()-15 and curdate()+15 funcione. em todo caso teste com adddate e date-sub. Sim, há registros mas enfim vou testar essas últimas alternativas que você me passou. Sem mais. Obrigado Motta ! Compartilhar este post Link para o post Compartilhar em outros sites