Re: [pgbr-geral] Ordenar Datas

2012-08-20 Por tôpico Matheus de Oliveira
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

2012-08-20 Por tôpico Ramiro Pamponet
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

2012-08-20 Por tôpico Mário Reis
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

2012-08-20 Por tôpico Guimarães Faria Corcete DUTRA , Leandro
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

2012-08-20 Por tôpico Euler Taveira
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-08-20 Por tôpico Guimarães Faria Corcete DUTRA , Leandro
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

2012-08-20 Por tôpico Ramiro Pamponet
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

2012-08-20 Por tôpico Osvaldo Kussama
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

2012-08-19 Por tôpico Ramiro Pamponet
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

2012-08-19 Por tôpico Osvaldo Kussama
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

2012-08-18 Por tôpico Fabrízio de Royes Mello
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

2012-08-18 Por tôpico Osvaldo Kussama
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

2012-08-18 Por tôpico Ramiro Pamponet
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

2012-08-18 Por tôpico Ramiro Pamponet
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

2012-08-18 Por tôpico Ramiro Pamponet
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

2012-08-18 Por tôpico Dickson S. Guedes
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

2012-08-18 Por tôpico Osvaldo Kussama
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