problemas com SYSDATE

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
HumbertoJr
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 8
Registrado em: Seg, 19 Set 2005 12:40 pm
Localização: CE

Pessoal,

Eu gostaria de algumas sugestões para o seguinte problema ,queria saber qual rotina PL/SQL devo proceder,meu problema é que devo fazer um rotina que eu pegue do banco uma cidade e SYSDATE e no final eu tenha a seguinte string ,por exemplo,se a cidade for são PAULO,01/04/2006.......eu tenha como resultado :São Paulo ,01 de Abril de 2006

percebam que o primeiro problema é que as cidade estão cadastradas todas em maiusculo no BD,pra fazer essa STring eu teria que somente colocar em maiusculo o primeiro caracter(portanto não daria pra usar somente UPPER)

O segundo problema ,é separar do SYSDATE,o dia ,mês e ano e depois o Mês deverá ser escrito por extenso em padrão portugues.....enfim .Enfim eu só consigo imaginar a solução mais trivial de ficar checando Mês a Mês e de acordo com o o valor colocar a String relativa a ele (se for igual a 01 coloca "Janeiro",se for igual a 02 ficaria "Fevereiro" e assim por diante) mas pode ser que haja uma outra solução melhor ............

alguém poderia me dar uma ajuda,por favor?
mello
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 15
Registrado em: Seg, 06 Mar 2006 5:26 pm
Localização: sp

o camando initcap coloca só as iniciais em maiusculo.

Selecionar tudo

SELECT initcap('SÃO PAULO, ')||
            TO_CHAR(SYSDATE, 'DD')||' de '||
            TO_CHAR(SYSDATE, 'Month')||'de '||
            TO_CHAR(SYSDATE, 'YYYY') AS RESULTADO
  FROM DUAL;
:o
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Olá Mello

Seu comando está perfeito, mas se o banco estiver com a data em INGLES, vai aparecer a data em ingles.

Abaixo, deixo a solução pra isso:

Selecionar tudo

SQL> select to_char(sysdate, 'Month') from dual;

TO_CHAR(S
---------
April

SQL> 
SQL> SELECT 
  2    INITCAP('PORTO ALEGRE')||', '||
  3    TO_CHAR(SYSDATE, 'DD') ||' de '||
  4    RTRIM(TO_CHAR(SYSDATE, 'Month' , 'NLS_DATE_LANGUAGE=PORTUGUESE' )) ||' de '||
  5    TO_CHAR(SYSDATE, 'YYYY')||'.'   HOJE
  6  FROM DUAL
  7  /

HOJE
--------------------------------------
Porto Alegre, 04 de Abril de 2006.

SQL> 
Observe que, mesmo a configuração do meu banco estando em ingles, a data sai certa!

Aqui no forum já foi falado sobre datas: Dá uma olhada nesse link:
http://www.glufke.net/oracle/viewtopic.php?t=22
:-o
Responder
  • Informação