XyBeR 0 Denunciar post Postado Outubro 7, 2009 Pessoal estou com a seguinte duvida, gostaria de realizar um SELECT aonde eu informe uma data inicial e final e ele me retorne as datas deste período, por exemplo: Informo que a data inicial é 2009-10-01 e data final é 2009-10-04 gostaria que me retorna-se o seguinte: +------------+ | datas | +------------+ | 2009-10-01 | | 2009-10-02 | | 2009-10-03 | | 2009-10-04 | +------------+ Tudo isso sem usar uma tabela com dados como referencia. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Outubro 7, 2009 http://forum.imasters.com.br/index.php?/topic/358633-seleccionar-dias/page__hl__data__fromsearch__1 Compartilhar este post Link para o post Compartilhar em outros sites
Eclesiastes 2 Denunciar post Postado Outubro 7, 2009 http://forum.imasters.com.br/index.php?/topic/362986-checar-meses-incluidos/page__fromsearch__1 Compartilhar este post Link para o post Compartilhar em outros sites
johnatam.camargo 0 Denunciar post Postado Outubro 8, 2009 tem um comando no mysql chamado BETWEEN... ele faz uma busca entre determinados valores.. sera util para seu caso.. abraços Compartilhar este post Link para o post Compartilhar em outros sites
Eclesiastes 2 Denunciar post Postado Outubro 9, 2009 tem um comando no mysql chamado BETWEEN... ele faz uma busca entre determinados valores.. sera util para seu caso.. abraços Não é o caso, ele quer apenas uma forma de gerar linhas com as tais datas, não as que estão no banco. Compartilhar este post Link para o post Compartilhar em outros sites
johnatam.camargo 0 Denunciar post Postado Outubro 9, 2009 tem um comando no mysql chamado BETWEEN... ele faz uma busca entre determinados valores.. sera util para seu caso.. abraços Não é o caso, ele quer apenas uma forma de gerar linhas com as tais datas, não as que estão no banco. foi mal naum li o conteudo inteiro.... Compartilhar este post Link para o post Compartilhar em outros sites
XyBeR 0 Denunciar post Postado Outubro 13, 2009 Eclesiastes vlw pela ajuda consegui chegar nesse resultado com aquele link: SELECT data FROM ( SELECT * FROM ( SELECT IF(NOT DAY(CONCAT(ANO, '-', MES, '-', DIA)) IS NULL, CONCAT(ANO, '-', MES, '-', DIA), 'N') AS data FROM (SELECT 2008 ANO UNION SELECT 2009) ANOS, (SELECT '01' MES UNION SELECT '02' UNION SELECT '03' UNION SELECT '04' UNION SELECT '05' UNION SELECT '06' UNION SELECT '07' UNION SELECT '08' UNION SELECT '09' UNION SELECT '10' UNION SELECT '11' UNION SELECT '12') MESES, (SELECT '01' DIA UNION SELECT '02' UNION SELECT '03' UNION SELECT '04' UNION SELECT '05' UNION SELECT '06' UNION SELECT '07' UNION SELECT '08' UNION SELECT '09' UNION SELECT '10' UNION SELECT '11' UNION SELECT '12' UNION SELECT '13' UNION SELECT '14' UNION SELECT '15' UNION SELECT '16' UNION SELECT '17' UNION SELECT '18' UNION SELECT '19' UNION SELECT '20' UNION SELECT '21' UNION SELECT '22' UNION SELECT '23' UNION SELECT '24' UNION SELECT '25' UNION SELECT '26' UNION SELECT '27' UNION SELECT '28' UNION SELECT '29' UNION SELECT '30' UNION SELECT '31') DIAS ) datas WHERE data <> 'N' ORDER BY data ) resultado WHERE data >= '2009-10-01' AND data <= '2009-10-04'Obs.: "SELECT 2008 ANO UNION SELECT 2009" vai ter 1 UNION para cada ano que eu estiver usando. Motta o seu link também foi de grande ajuda e consegui chegar nesse resultado com as informações que eu já tinha do link do Eclesiastes: SET @va = 0; SET @vm = 0; SET @vd = 0; SET @num = 0; SELECT data FROM ( SELECT * FROM ( SELECT IF(NOT DAY(CONCAT(ANO, '-', MES, '-', DIA)) IS NULL, STR_TO_DATE(CONCAT(ANO, '-', MES, '-', DIA), '%Y-%m-%d'), 'N') AS data FROM (SELECT (@va := @va + 1) AS Id, (@num := (2008 - 1) + @va) AS ANO FROM bo WHERE @num < 2009) ANOS, (SELECT (@vm := @vm + 1) AS MES FROM bo WHERE @vm < 12) MESES, (SELECT (@vd := @vd + 1) AS DIA FROM bo WHERE @vd < 31) DIAS ) datas WHERE data <> 'N' ORDER BY data ) resultado WHERE data >= '2009-10-01' AND data <= '2009-10-04'Obs.: "(@num := (2008 - 1) + @va" eu informo 2008 como o ano de inicio da pesquisa e "@num < 2009" eu informo o ano final da pesquisa. Das duas maneiras consegui chegar no resultado que eu queria fica ai de exemplo para quem fico na duvida também. Compartilhar este post Link para o post Compartilhar em outros sites