[Dica] Formato de Datas - Consulta rápida

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 Sex, 21 Mai 2004 6:11 pm

Códigos:
Código: Selecionar todos
AM   - AM ou PM   
CC   - Século
D    - Dia da semana (1-7)
DAY  - Dia da semana ('SUNDAY')
DD   - Dia do mês (1-31)
DDD  - Dia do ano
DY   - Dia da semana abreviado ('SUN')
FM   - Tira os blanks ou Zeros da esquerda
HH   - Hora do dia (0-12)
HH24 - Hora do dia (0-24)
MI   - Minutos da Hora
MM   - Mês com 2 dígitos
MON  - Mês abreviado ('NOV')
MONTH- Mês por extenso ('NOVEMBER')
PM   - AM ou PM
RR   - Ano com 2 dígitos - especial
RRRR - Ano com 4 dígitos
SS   - Segundos do minuto(0 - 59)
SSSSS- Segundos do dia
W    - Semana do Mês
WW   - Semana do Ano
YEAR - Ano por extenso
YY   - Ano com 2 dígitos
YYYY - Ano com 4 dígitos
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

Mensagemem Sáb, 05 Jun 2004 9:42 am

Outra coisa:

Nem sempre a gente sabe quais as configurações do banco que o nosso programa vai ser executado. Por exemplo: Tenho que mostrar o dia da semana ao usuário por extenso:

Código: Selecionar todos
SQL> SELECT TO_CHAR( SYSDATE , 'DY' ) FROM DUAL;

TO_
---
FRI

SQL> SELECT TO_CHAR( SYSDATE , 'DY' , 'NLS_DATE_LANGUAGE=PORTUGUESE' ) FROM DUAL;

TO_
---
SEX


Como podem ver, o banco está em ingles. Mas eu forço a consulta pra ela sair em português - sem me preocupar em alterar nenhuma configuração! :-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

Mensagemem Ter, 15 Jun 2004 11:46 am

Veja como não é preciso Upper ou INITCAP para ter a resposta em maiúsculo ou minúsculo:

Código: Selecionar todos
SQL> SELECT TO_CHAR( SYSDATE , 'DY' ) FROM DUAL;

TO_
---
TER

SQL> SELECT TO_CHAR( SYSDATE , 'Dy' ) FROM DUAL;

TO_
---
Ter

SQL> SELECT TO_CHAR( SYSDATE , 'dy' ) FROM DUAL;

TO_
---
ter


Isso vale para os outros formatos!
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

Mensagemem Ter, 29 Jun 2004 9:58 am

Já que o assunto é formatos, aí vão mais algumas coisas interessantes:

Tricks
Código: Selecionar todos
scott#PO7::SQL>alter session set NLS_NUMERIC_CHARACTERS=',.';
scott#PO7::SQL>alter session set NLS_CURRENCY='R$';
scott#PO7::SQL>column SAL format L99G999G999D09
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

Mensagemem Qui, 06 Set 2012 11:08 am

Se eu quiser que

Código: Selecionar todos
v_mes_ext := (to_char(Sysdate,'Month','nls_date_language =''brazilian portuguese'''));


Ao invés de receber sysdate, receba um parametro?
Posso colocar o parametro no lugar de sysdate?

Quero eu mesma digitar o mês, e não pegar o mês do meu PC.

COmo seria feito isso?
fabianaguimaraes

Mensagemem Qui, 06 Set 2012 2:14 pm

Basta passar uma data como parâmetro:
Código: Selecionar todos
v_mes_ext := (to_char( to_date('01/05/2012', 'dd/mm/yyyy'),'Month','nls_date_language =''brazilian portuguese'''));
ou
declare
  v_data date;
begin
  v_data := to_date('01/09/2012', 'dd/mm/yyyy');
  v_mes_ext := (to_char( v_data ,'Month','nls_date_language =''brazilian portuguese'''));
end;
rogenaro
Localização: Londrina - PR

Rafael O. Genaro


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