Re: [pgbr-geral] Ordenar Datas
2012/8/18 Ramiro Pamponet roli...@oi.com.br Fabrizio, Sua solução atende 99% as minhas necessidades. Fiz umas alterações. select nome, aniversario from clientes where extract(MONTH from aniversario) = extract(MONTH from now()) order by extract(MONTH from aniversario), extract(DAY from aniversario) Tente assim: SELECT nome, aniversario FROM clientes WHERE extract(MONTH from aniversario) extract(MONTH from now()) OR (extract(MONTH from aniversario) = extract(MONTH from now()) AND extract(DAY from aniversario) = extract(DAY from now())) ORDER BY extract(MONTH from aniversario), extract(DAY from aniversario) Atenciosamente, -- Matheus de Oliveira ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Ordenar Datas
Olá Osvaldo, Na minha subquery eu quero que conste as datas de aniversário com o mês maior ou igual ao mês atual, e a partir daí (na minha query principal), eu quero que apenas as datas do resultado da minha subquery mostrem aquelas que possuem o dia maior ou igual ao dia atual, ordenando o resultado final por mês e dia. Vou tentar a solução apresnetada pelo Fabrizio *SELECT nome, aniversario FROM clientes WHERE extract(MONTH from aniversario) extract(MONTH from now()) OR (extract(MONTH from aniversario) = extract(MONTH from now()) AND extract(DAY from aniversario) = extract(DAY from now())) ORDER BY extract(MONTH from aniversario), extract(DAY from aniversario) * e ver se consigo o resultado esperado. Valeu Galera! Em 19 de agosto de 2012 23:00, Osvaldo Kussama osvaldo.kuss...@gmail.comescreveu: Em 19/08/12, Ramiro Pamponetroli...@oi.com.br escreveu: E seu eu fizesse uso de subqueryes do tipo: - select nome, aniversario from clientes where extract(DAY from aniversario) = extract(DAY from now()) in (select nome, aniversario from clientes where extract(MONTH from aniversario) = extract(MONTH from now())) order by extract(MONTH from aniversario), extract(DAY from aniversario) - mas com um pequeno detalhe, essa consulta me retorno o seguinte erro: - ERRO: subconsulta tem muitas colunas LINE 3: in ^ ** Error ** ERRO: subconsulta tem muitas colunas SQL state: 42601 Character: 103 - Sendo que a quantidade de colunas nas duas consultas é a mesma, 2 (nome e aniversario). Onde estou errando? Era para fazer a consulta por mês e depois a partir do resultado dessa consulta fazer outra por dia, e por fim ordenar por mês e dia. Caso não seja possível, vou começar a pensar na possibilidade de utilizar a função to_char (aniversario, 'MMDD'), que já andei lendo que pode ser descontinuada nas próximas versões do PostgreSQL. Valeu Galera e Um Grande Abraço a Todos! Não consegui ver sentido em sua cláusula IN. O que você deseja que conste do resultado de sua sub-query? Osvaldo Obs.: Aonde você leu que a função to_char será descontinuada? ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Ordenar Datas
Companheiro, A melhor forma de não ter problemass com ordenação de datas é usar sempre o formato MMDD independentemente do separador que use dá sempre certa os queries são bastante rápidos. De contrário tem degradação. Equanto o seu banco de dados tem meio milhar de registos você não nota, mas à medida que ele vai engordando você começa a perceber quanto maior for o recurso a funções, ainda que nativas, maior a degradação pois o banco tem de resolver para você o um extract por cada registo da tabela selecionada. Espero ter ajudado mais do que desajudado. Disponha Mário Reis No dia 20 de Agosto de 2012 15:12, Ramiro Pamponet roli...@oi.com.brescreveu: Olá Osvaldo, Na minha subquery eu quero que conste as datas de aniversário com o mês maior ou igual ao mês atual, e a partir daí (na minha query principal), eu quero que apenas as datas do resultado da minha subquery mostrem aquelas que possuem o dia maior ou igual ao dia atual, ordenando o resultado final por mês e dia. Vou tentar a solução apresnetada pelo Fabrizio *SELECT nome, aniversario FROM clientes WHERE extract(MONTH from aniversario) extract(MONTH from now()) OR (extract(MONTH from aniversario) = extract(MONTH from now()) AND extract(DAY from aniversario) = extract(DAY from now())) ORDER BY extract(MONTH from aniversario), extract(DAY from aniversario) * e ver se consigo o resultado esperado. Valeu Galera! Em 19 de agosto de 2012 23:00, Osvaldo Kussama osvaldo.kuss...@gmail.comescreveu: Em 19/08/12, Ramiro Pamponetroli...@oi.com.br escreveu: E seu eu fizesse uso de subqueryes do tipo: - select nome, aniversario from clientes where extract(DAY from aniversario) = extract(DAY from now()) in (select nome, aniversario from clientes where extract(MONTH from aniversario) = extract(MONTH from now())) order by extract(MONTH from aniversario), extract(DAY from aniversario) - mas com um pequeno detalhe, essa consulta me retorno o seguinte erro: - ERRO: subconsulta tem muitas colunas LINE 3: in ^ ** Error ** ERRO: subconsulta tem muitas colunas SQL state: 42601 Character: 103 - Sendo que a quantidade de colunas nas duas consultas é a mesma, 2 (nome e aniversario). Onde estou errando? Era para fazer a consulta por mês e depois a partir do resultado dessa consulta fazer outra por dia, e por fim ordenar por mês e dia. Caso não seja possível, vou começar a pensar na possibilidade de utilizar a função to_char (aniversario, 'MMDD'), que já andei lendo que pode ser descontinuada nas próximas versões do PostgreSQL. Valeu Galera e Um Grande Abraço a Todos! Não consegui ver sentido em sua cláusula IN. O que você deseja que conste do resultado de sua sub-query? Osvaldo Obs.: Aonde você leu que a função to_char será descontinuada? ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Com os meus melhores cumprimentos Mário Agostinho Reis Esta mensagem contém informação de natureza confidencial e é exclusivamente dirigida ao(s) destinatário(s) indicado(s). Se, por engano, receber este email agradecemos que não o copie nem o reenvie e que nos notifique do ocorrido através do email de resposta. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Ordenar Datas
Povo, vamos parar de responder no topo? 2012/8/20 Mário Reis mariodosr...@gmail.com: A melhor forma de não ter problemass com ordenação de datas é usar sempre o formato MMDD Embora eu concorde em termos genéricos, não posso deixar de lembrar que o PostgreSQL não trata datas de acordo com o formato de apresentação, que varia, mas com o interno, que é fixo. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Ordenar Datas
On 20-08-2012 13:17, Guimarães Faria Corcete DUTRA, Leandro wrote: Povo, vamos parar de responder no topo? ... e cortar o que não é relevante (aka assinaturas principalmente). Manter somente o relevante agiliza a leitura da discussão. Para aqueles que ainda não leram as regras da lista [1]. [1] http://www.postgresql.org.br/RegrasLista -- Euler Taveira de Oliveira - Timbira http://www.timbira.com.br/ PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Ordenar Datas
2012/8/20 Euler Taveira eu...@timbira.com: On 20-08-2012 13:17, Guimarães Faria Corcete DUTRA, Leandro wrote: Povo, vamos parar de responder no topo? ... e cortar o que não é relevante Certíssimo, mas só quis levantar uma lebre de cada vez… ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Ordenar Datas
Osvaldo, respondendo a sua pergunta, onde eu vi sobre a descontinuidade da função to_char, entre outros lugares, segue abaixo o link de uma pesquisa no Google. Pode sere que não seja para agora, mas já está sendo levantada a hipótese para as próximas versões. ** POSTGRESQL EM EXEMPLOShttp://www.inf.ufrgs.br/%7Eirmmenezes/home/download/pgsql/postgreSQL_pratico.pdf www.inf.ufrgs.br/~irmmenezes/home/.../postgreSQL_pratico.pdf Formato do arquivo: PDF/Adobe Acrobat - Visualização rápidahttp://docs.google.com/viewer?a=vq=cache:HRCD0hQuW2gJ:www.inf.ufrgs.br/%7Eirmmenezes/home/download/pgsql/postgreSQL_pratico.pdf+fun%C3%A7%C3%A3o+to_char+descontinuadahl=pt-BRgl=brpid=blsrcid=ADGEESiVbpSueXp5amIuHupVCpZYhLB2TJZKiqD81ssV8aHEDv5tcMTxkHbog9atSQ1RCItOz6lZIKSmmcxl9tmd_3cvE9HkLpYhkzt1lDcHBOXkN-_3fe6dix4SPdiAXULUc-4MchfTsig=AHIEtbQR-6Dg_iadHVbWrCcc2iN9wnJf8w *TO_CHAR* - Esta *função* deve ser evitada, pois será *descontinuada*. TO_DATE date TO_DATE(text, text); Recebe dois parâmetros text e retorna date. Um dos *... ** * Em 19 de agosto de 2012 23:00, Osvaldo Kussama osvaldo.kuss...@gmail.comescreveu: Em 19/08/12, Ramiro Pamponetroli...@oi.com.br escreveu: E seu eu fizesse uso de subqueryes do tipo: - select nome, aniversario from clientes where extract(DAY from aniversario) = extract(DAY from now()) in (select nome, aniversario from clientes where extract(MONTH from aniversario) = extract(MONTH from now())) order by extract(MONTH from aniversario), extract(DAY from aniversario) - mas com um pequeno detalhe, essa consulta me retorno o seguinte erro: - ERRO: subconsulta tem muitas colunas LINE 3: in ^ ** Error ** ERRO: subconsulta tem muitas colunas SQL state: 42601 Character: 103 - Sendo que a quantidade de colunas nas duas consultas é a mesma, 2 (nome e aniversario). Onde estou errando? Era para fazer a consulta por mês e depois a partir do resultado dessa consulta fazer outra por dia, e por fim ordenar por mês e dia. Caso não seja possível, vou começar a pensar na possibilidade de utilizar a função to_char (aniversario, 'MMDD'), que já andei lendo que pode ser descontinuada nas próximas versões do PostgreSQL. Valeu Galera e Um Grande Abraço a Todos! Não consegui ver sentido em sua cláusula IN. O que você deseja que conste do resultado de sua sub-query? Osvaldo Obs.: Aonde você leu que a função to_char será descontinuada? ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Ordenar Datas
Em 20 de agosto de 2012 15:16, Ramiro Pamponet roli...@oi.com.br escreveu: Osvaldo, respondendo a sua pergunta, onde eu vi sobre a descontinuidade da função to_char, entre outros lugares, segue abaixo o link de uma pesquisa no Google. Pode sere que não seja para agora, mas já está sendo levantada a hipótese para as próximas versões. ** POSTGRESQL EM EXEMPLOShttp://www.inf.ufrgs.br/%7Eirmmenezes/home/download/pgsql/postgreSQL_pratico.pdf www.inf.ufrgs.br/~irmmenezes/home/.../postgreSQL_pratico.pdfhttp://www.inf.ufrgs.br/%7Eirmmenezes/home/.../postgreSQL_pratico.pdf Formato do arquivo: PDF/Adobe Acrobat - Visualização rápidahttp://docs.google.com/viewer?a=vq=cache:HRCD0hQuW2gJ:www.inf.ufrgs.br/%7Eirmmenezes/home/download/pgsql/postgreSQL_pratico.pdf+fun%C3%A7%C3%A3o+to_char+descontinuadahl=pt-BRgl=brpid=blsrcid=ADGEESiVbpSueXp5amIuHupVCpZYhLB2TJZKiqD81ssV8aHEDv5tcMTxkHbog9atSQ1RCItOz6lZIKSmmcxl9tmd_3cvE9HkLpYhkzt1lDcHBOXkN-_3fe6dix4SPdiAXULUc-4MchfTsig=AHIEtbQR-6Dg_iadHVbWrCcc2iN9wnJf8w *TO_CHAR* - Esta *função* deve ser evitada, pois será *descontinuada*. TO_DATE date TO_DATE(text, text); Recebe dois parâmetros text e retorna date. Um dos *... ** * Creio que exista um pequeno engano aí. Realmente no manual da versão 8.0 (que é de 2005) constava: Warning: to_char(interval, text) is deprecated and should not be used in newly-written code. It will be removed in the next version. Repare que não é dito que a função to_char seria removida, apenas o tratamento de interval, que não é o caso de sua questão. Mesmo assim este aviso foi retirado dos manuais das versões subsequentes até a atual 9.1. Você pode conferir até na versão 9.3 que está em desenvolvimento: http://www.postgresql.org/docs/devel/static/functions-formatting.html (esta versão é a que se seguirá à 9.2 a qual está em beta 4). Osvaldo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Ordenar Datas
E seu eu fizesse uso de subqueryes do tipo: - select nome, aniversario from clientes where extract(DAY from aniversario) = extract(DAY from now()) in (select nome, aniversario from clientes where extract(MONTH from aniversario) = extract(MONTH from now())) order by extract(MONTH from aniversario), extract(DAY from aniversario) - mas com um pequeno detalhe, essa consulta me retorno o seguinte erro: - ERRO: subconsulta tem muitas colunas LINE 3: in ^ ** Error ** ERRO: subconsulta tem muitas colunas SQL state: 42601 Character: 103 - Sendo que a quantidade de colunas nas duas consultas é a mesma, 2 (nome e aniversario). Onde estou errando? Era para fazer a consulta por mês e depois a partir do resultado dessa consulta fazer outra por dia, e por fim ordenar por mês e dia. Caso não seja possível, vou começar a pensar na possibilidade de utilizar a função to_char (aniversario, 'MMDD'), que já andei lendo que pode ser descontinuada nas próximas versões do PostgreSQL. Valeu Galera e Um Grande Abraço a Todos! Em 18 de agosto de 2012 17:24, Dickson S. Guedes lis...@guedesoft.netescreveu: Em 18 de agosto de 2012 13:48, Ramiro Pamponet roli...@oi.com.br escreveu: Fabrizio, Sua solução atende 99% as minhas necessidades. Fiz umas alterações. select nome, aniversario from clientes where extract(MONTH from aniversario) = extract(MONTH from now()) order by extract(MONTH from aniversario), extract(DAY from aniversario) Mas pra ficar 100% será que não teria como filtrar também pelo dia do mês, para que não mostre os clientes que já fizeram aniversário naquele mês? Mostar somente os clientes que ainda irão fazer aniversário, seja dentro do próprio mês ou nos meses seguintes. Talvez date_trunc [1] e interval ajude você a encontrar um caminho mais apropriado. [1] http://www.postgresql.org/docs/current/static/functions-datetime.html#FUNCTIONS-DATETIME-TRUNC []s -- Dickson S. Guedes mail/xmpp: gue...@guedesoft.net - skype: guediz http://guedesoft.net - http://www.postgresql.org.br ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Ordenar Datas
Em 19/08/12, Ramiro Pamponetroli...@oi.com.br escreveu: E seu eu fizesse uso de subqueryes do tipo: - select nome, aniversario from clientes where extract(DAY from aniversario) = extract(DAY from now()) in (select nome, aniversario from clientes where extract(MONTH from aniversario) = extract(MONTH from now())) order by extract(MONTH from aniversario), extract(DAY from aniversario) - mas com um pequeno detalhe, essa consulta me retorno o seguinte erro: - ERRO: subconsulta tem muitas colunas LINE 3: in ^ ** Error ** ERRO: subconsulta tem muitas colunas SQL state: 42601 Character: 103 - Sendo que a quantidade de colunas nas duas consultas é a mesma, 2 (nome e aniversario). Onde estou errando? Era para fazer a consulta por mês e depois a partir do resultado dessa consulta fazer outra por dia, e por fim ordenar por mês e dia. Caso não seja possível, vou começar a pensar na possibilidade de utilizar a função to_char (aniversario, 'MMDD'), que já andei lendo que pode ser descontinuada nas próximas versões do PostgreSQL. Valeu Galera e Um Grande Abraço a Todos! Não consegui ver sentido em sua cláusula IN. O que você deseja que conste do resultado de sua sub-query? Osvaldo Obs.: Aonde você leu que a função to_char será descontinuada? ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Ordenar Datas
Em 18 de agosto de 2012 10:37, Ramiro Pamponet roli...@oi.com.br escreveu: Olá Pessoal, sou novo por aqui e estou com uma dúvida. Possuo na minha tabela de clientes um campo date para guardar a data de nascimento desse cliente e apartir daí calcular a idade dele em minha aplicação Java. Estava querendo implementar um lembrete de aniversariantes (toda vez que o sistema fosse aberto, mostrar todos os clientes que ainda vão fazer aniversário, ordenados por mês, seguido pelo dia, ignorando o ano, na minha tela principal). Será que isso é possível utilizando SQL (PostgreSQL) ou Java? Aguardo sugestões. Obrigado Se eu entendi bem vc quer algo tipo: SELECT codigo, nome, data_nascimento FROM tabela ORDER BY extract(MONTH FROM data_nascimento), extract(DAY FROM data_nascimento); Att, -- Fabrízio de Royes Mello Consultoria/Coaching PostgreSQL Blog sobre TI: http://fabriziomello.blogspot.com Perfil Linkedin: http://br.linkedin.com/in/fabriziomello Twitter: http://twitter.com/fabriziomello ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Ordenar Datas
Em 18/08/12, Ramiro Pamponetroli...@oi.com.br escreveu: Olá Pessoal, sou novo por aqui e estou com uma dúvida. Possuo na minha tabela de clientes um campo date para guardar a data de nascimento desse cliente e apartir daí calcular a idade dele em minha aplicação Java. Estava querendo implementar um lembrete de aniversariantes (toda vez que o sistema fosse aberto, mostrar todos os clientes que ainda vão fazer aniversário, ordenados por mês, seguido pelo dia, ignorando o ano, na minha tela principal). Será que isso é possível utilizando SQL (PostgreSQL) ou Java? Aguardo sugestões. Obrigado Uma possibilidade, para listar os aniversariantes por mês, é: SELECT nome, to_char(data_de_nascimento, 'MMDD') FROM sua_tabela ORDER BY 2; Osvaldo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Ordenar Datas
Vou testar essa query para ver se atende as minhas necessidades, e volto a postar assim que tiver uma confirmação. Valeu! Em 18 de agosto de 2012 10:46, Fabrízio de Royes Mello fabriziome...@gmail.com escreveu: Em 18 de agosto de 2012 10:37, Ramiro Pamponet roli...@oi.com.brescreveu: Olá Pessoal, sou novo por aqui e estou com uma dúvida. Possuo na minha tabela de clientes um campo date para guardar a data de nascimento desse cliente e apartir daí calcular a idade dele em minha aplicação Java. Estava querendo implementar um lembrete de aniversariantes (toda vez que o sistema fosse aberto, mostrar todos os clientes que ainda vão fazer aniversário, ordenados por mês, seguido pelo dia, ignorando o ano, na minha tela principal). Será que isso é possível utilizando SQL (PostgreSQL) ou Java? Aguardo sugestões. Obrigado Se eu entendi bem vc quer algo tipo: SELECT codigo, nome, data_nascimento FROM tabela ORDER BY extract(MONTH FROM data_nascimento), extract(DAY FROM data_nascimento); Att, -- Fabrízio de Royes Mello Consultoria/Coaching PostgreSQL Blog sobre TI: http://fabriziomello.blogspot.com Perfil Linkedin: http://br.linkedin.com/in/fabriziomello Twitter: http://twitter.com/fabriziomello ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Ordenar Datas
Vou testar essa query também e avaliar o seu retorno, comparando com a resposta data pelo Fabrízio de Royes Mello. Valeu pela dica Também! Em 18 de agosto de 2012 10:51, Osvaldo Kussama osvaldo.kuss...@gmail.comescreveu: Em 18/08/12, Ramiro Pamponetroli...@oi.com.br escreveu: Olá Pessoal, sou novo por aqui e estou com uma dúvida. Possuo na minha tabela de clientes um campo date para guardar a data de nascimento desse cliente e apartir daí calcular a idade dele em minha aplicação Java. Estava querendo implementar um lembrete de aniversariantes (toda vez que o sistema fosse aberto, mostrar todos os clientes que ainda vão fazer aniversário, ordenados por mês, seguido pelo dia, ignorando o ano, na minha tela principal). Será que isso é possível utilizando SQL (PostgreSQL) ou Java? Aguardo sugestões. Obrigado Uma possibilidade, para listar os aniversariantes por mês, é: SELECT nome, to_char(data_de_nascimento, 'MMDD') FROM sua_tabela ORDER BY 2; Osvaldo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Ordenar Datas
Fabrizio, Sua solução atende 99% as minhas necessidades. Fiz umas alterações. select nome, aniversario from clientes where extract(MONTH from aniversario) = extract(MONTH from now()) order by extract(MONTH from aniversario), extract(DAY from aniversario) Mas pra ficar 100% será que não teria como filtrar também pelo dia do mês, para que não mostre os clientes que já fizeram aniversário naquele mês? Mostar somente os clientes que ainda irão fazer aniversário, seja dentro do próprio mês ou nos meses seguintes. Tentei inluir na query a opção select ... where ... and extract(DAYfrom aniversario) = extract(DAYfrom now()) order by ... mas dessa forma ele pula também os meses em que o dia é = que o dia atual. ATT Ramiro Em 18 de agosto de 2012 10:46, Fabrízio de Royes Mello fabriziome...@gmail.com escreveu: Em 18 de agosto de 2012 10:37, Ramiro Pamponet roli...@oi.com.brescreveu: Olá Pessoal, sou novo por aqui e estou com uma dúvida. Possuo na minha tabela de clientes um campo date para guardar a data de nascimento desse cliente e apartir daí calcular a idade dele em minha aplicação Java. Estava querendo implementar um lembrete de aniversariantes (toda vez que o sistema fosse aberto, mostrar todos os clientes que ainda vão fazer aniversário, ordenados por mês, seguido pelo dia, ignorando o ano, na minha tela principal). Será que isso é possível utilizando SQL (PostgreSQL) ou Java? Aguardo sugestões. Obrigado Se eu entendi bem vc quer algo tipo: SELECT codigo, nome, data_nascimento FROM tabela ORDER BY extract(MONTH FROM data_nascimento), extract(DAY FROM data_nascimento); Att, -- Fabrízio de Royes Mello Consultoria/Coaching PostgreSQL Blog sobre TI: http://fabriziomello.blogspot.com Perfil Linkedin: http://br.linkedin.com/in/fabriziomello Twitter: http://twitter.com/fabriziomello ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Ordenar Datas
Em 18 de agosto de 2012 13:48, Ramiro Pamponet roli...@oi.com.br escreveu: Fabrizio, Sua solução atende 99% as minhas necessidades. Fiz umas alterações. select nome, aniversario from clientes where extract(MONTH from aniversario) = extract(MONTH from now()) order by extract(MONTH from aniversario), extract(DAY from aniversario) Mas pra ficar 100% será que não teria como filtrar também pelo dia do mês, para que não mostre os clientes que já fizeram aniversário naquele mês? Mostar somente os clientes que ainda irão fazer aniversário, seja dentro do próprio mês ou nos meses seguintes. Talvez date_trunc [1] e interval ajude você a encontrar um caminho mais apropriado. [1] http://www.postgresql.org/docs/current/static/functions-datetime.html#FUNCTIONS-DATETIME-TRUNC []s -- Dickson S. Guedes mail/xmpp: gue...@guedesoft.net - skype: guediz http://guedesoft.net - http://www.postgresql.org.br ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Ordenar Datas
Em 18 de agosto de 2012 13:48, Ramiro Pamponet roli...@oi.com.br escreveu: Fabrizio, Sua solução atende 99% as minhas necessidades. Fiz umas alterações. select nome, aniversario from clientes where extract(MONTH from aniversario) = extract(MONTH from now()) order by extract(MONTH from aniversario), extract(DAY from aniversario) Mas pra ficar 100% será que não teria como filtrar também pelo dia do mês, para que não mostre os clientes que já fizeram aniversário naquele mês? Mostar somente os clientes que ainda irão fazer aniversário, seja dentro do próprio mês ou nos meses seguintes. Tentei inluir na query a opção select ... where ... and extract(DAYfrom aniversario) = extract(DAYfrom now()) order by ... mas dessa forma ele pula também os meses em que o dia é = que o dia atual. ATT Ramiro Em 18 de agosto de 2012 10:46, Fabrízio de Royes Mello fabriziome...@gmail.com escreveu: Em 18 de agosto de 2012 10:37, Ramiro Pamponet roli...@oi.com.brescreveu: Olá Pessoal, sou novo por aqui e estou com uma dúvida. Possuo na minha tabela de clientes um campo date para guardar a data de nascimento desse cliente e apartir daí calcular a idade dele em minha aplicação Java. Estava querendo implementar um lembrete de aniversariantes (toda vez que o sistema fosse aberto, mostrar todos os clientes que ainda vão fazer aniversário, ordenados por mês, seguido pelo dia, ignorando o ano, na minha tela principal). Será que isso é possível utilizando SQL (PostgreSQL) ou Java? Aguardo sugestões. Obrigado Se eu entendi bem vc quer algo tipo: SELECT codigo, nome, data_nascimento FROM tabela ORDER BY extract(MONTH FROM data_nascimento), extract(DAY FROM data_nascimento); Como você quer desconsiderar o ano das datas, tente: SELECT nome, aniversario FROM clientes WHERE to_char(aniversario, 'MMDD') to_char(CURRENT_DATE, 'MMDD') ORDER BY to_char(aniversario, 'MMDD'), nome; Osvaldo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral