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
  

Mensagemem Sáb, 01 Abr 2006 6:23 pm

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?
HumbertoJr
Localização: CE

Mensagemem Ter, 04 Abr 2006 10:55 am

o camando initcap coloca só as iniciais em maiusculo.

Código: Selecionar todos
SELECT initcap('SÃO PAULO, ')||
            TO_CHAR(SYSDATE, 'DD')||' de '||
            TO_CHAR(SYSDATE, 'Month')||'de '||
            TO_CHAR(SYSDATE, 'YYYY') AS RESULTADO
  FROM DUAL;


:o
mello
Localização: sp

Mensagemem Ter, 04 Abr 2006 12:19 pm

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:

Código: Selecionar todos
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
dr_gori
Localização: Portland, OR USA

Thomas F. G

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


  • Veja também
    Respostas
    ExibiÇões
    Última mensagem


Voltar para PL/SQL

Quem está online

Usuários navegando neste fórum: Google [Bot] e 1 visitante