Páginas

terça-feira, 19 de maio de 2015

[ORACLE] - Formatação de Datas em texto no Oracle

Bom pessoal, segue abaixo formatação de datas para exemplo com os links para pesquisa quando necessário:

SELECT to_char(SYSDATE, 'DD/MM/YYYY HH24:MI:SS') AS data_e_hora_inteira,
       to_char(SYSDATE, 'HH24:MI:SS') AS hora_inteira,
       to_char(SYSDATE, 'HH') AS hora_h12,
       to_char(SYSDATE, 'WW') AS SEMANA,
       to_char(SYSDATE, 'W') AS SEMANA1,
       to_char(SYSDATE, 'IW') AS SEMANA2,
       to_char(SYSDATE, 'Day', 'nls_language =''BRAZILIAN PORTUGUESE''') AS nome_dia,
       to_char(SYSDATE, 'Month', 'nls_language =''BRAZILIAN PORTUGUESE''') AS nome_mes,
       to_char(SYSDATE, 'YEAR', 'nls_language =''BRAZILIAN PORTUGUESE''') AS nome_ano,
       to_char(SYSDATE, 'DD', 'nls_date_language = PORTUGUESE') AS dia,
       to_char(SYSDATE, 'MM', 'nls_date_language = PORTUGUESE') AS mes,
       to_char(SYSDATE, 'YYYY', 'nls_date_language = PORTUGUESE') AS ano,
       to_char(SYSDATE, 'HH24') AS hora_h24,
       to_char(SYSDATE, 'MI') AS minuto,
       to_char(SYSDATE, 'SS') AS segundo,
       to_char(SYSDATE,
               ('DAY, dd "de" FMMONTH "de" YYYY'),
               'nls_date_language = PORTUGUESE') AS data_literal,
       to_char(SYSDATE,
               ('DAY, dd "," FMMONTH "," YYYY'),
               'nls_date_language = AMERICAN') AS data_literal_americana,
       to_char(SYSDATE,
               'yyyy-MON-dd, FMDAY',
               'nls_date_language = AMERICAN') data_padrao_americano,
       to_char(SYSDATE,
               'FMDAY , dd/MM/yyyy',
               'nls_date_language = PORTUGUESE') data_padrao_brasil,
       sessiontimezone AS timezone_da_sessao,
       current_date AS data_formato_timezone
FROM   dual;

Tabelas de parâmetros


 Parâmetros Descrição
 YEAR Ano (Ex: dois mil e onze, twenty eleven)
 YYYY
 YYY
 YY
 Y
 Ano (Ex: 2011)
 Ano (Ex: 011)
 Ano (Ex: 11)
 Ano (Ex: 1)
 Q Quadrimestre (1,2,3,4)
 MM Mês (Ex: 10)
 MON Abreviatura do nome do Mês (Ex: OUT)
 MONTH Nome do Mês (Ex: Outubro)
 RM Mês em números romanos (Ex: X)
 WW Semana do Ano de 1 a 53
 W  Semana do mês de 1 a 5
 D Dia da semana de 1 a 7 (1 = Domingo até 7=Sábado)
 DAY Nome do dia da semana (Ex: Sabádo)    
 DD Dia do Mês de 1 a 31
 DDD Dia do Ano de 1 a 366
 DY Abreviatura do dia da semana (Ex: SÁB)
 HH Hora de 1 a 12
 HH12 Hora de 1 a 12
 HH24 Hora de 1 a 24
 MI Minutos
 SS Segundos
 SSSSS Milésimos

Fonte:
http://ss64.com/ora/syntax-fmt.html
http://infolab.stanford.edu/~ullman/fcdb/oracle/or-time.html

Um comentário:

  1. bom dia, eu preciso fazer a seguinte conversão:

    SELECT to_date
    ( '08/11/1999 05:45:00 AM'
    , 'dd/mm/yyyy hh24:mi:ss.'
    , 'nls_date_language=PORTUGUESE'
    ) FROM DUAL;

    mas apresenta o seguinte erro
    [Error] Execution (17: 5): ORA-01830: date format picture ends before converting entire input string

    ResponderExcluir