Funções de Data e Hora

As funções de data e horário manipulam dados com base em DATE e DATETIME.

Função Exemplo Descrição Sintaxe

CURRENT_Date

CURRENT_DATE

Retorna a data atual.

A data é determinada pelo sistema no qual o Oracle BI está sendo executado.

CURRENT_DATE

CURRENT_TIME

CURRENT_TIME(3)

Retorna a hora atual para o número especificado de dígitos de precisão, por exemplo: HH:MM:SS.SSS

Se nenhum argumento for especificado, a função retornará a precisão padrão.

CURRENT_TIME(expr)

CURRENT_TIMESTAMP

CURRENT_TIMESTAMP(3)

Retorna a data/timestamp atual ao número especificado de dígitos de precisão.

CURRENT_TIMESTAMP(expr)

DAYNAME

DAYNAME(Order_Date)

Retorna o nome do dia da semana para uma expressão de data especificada.

DAYNAME(expr)

DAYOFMONTH

DAYOFMONTH(Order_Date)

Retorna o número que corresponde ao dia do mês para uma expressão de data especificada.

DAYOFMONTH(expr)

DAYOFWEEK

DAYOFWEEK(Order_Date)

Retorna um número entre 1 e 7 que corresponde ao dia da semana para uma expressão de data especificada. Por exemplo, 1 sempre corresponde a domingo, 2 a segunda e assim por diante, até sábado, que retorna 7.

DAYOFWEEK(expr)

DAYOFYEAR

DAYOFYEAR(Order_Date)

Retorna o número (entre 1 e 366) que corresponde ao dia do ano para uma expressão de data especificada.

DAYOFYEAR(expr)

DAY_OF_QUARTER

DAY_OF_QUARTER(Order_Date)

Retorna um número (entre 1 e 92) que corresponde ao dia do trimestre para a expressão de data especificada.

DAY_OF_QUARTER(expr)

HOUR

HOUR(Order_Time)

Retorna um número (entre 0 e 23) que corresponde à hora para uma expressão de horário especificada. Por exemplo, 0 corresponde a meia-noite e 23 corresponde a 11 da noite.

HOUR(expr)

MINUTE

MINUTE(Order_Time)

Retorna um número (entre 0 e 59) que corresponde ao minuto para uma expressão de horário especificada.

MINUTE(expr)

MONTH

MONTH(Order_Time)

Retorna o número (entre 1 e 12) que corresponde ao mês para uma expressão de data especificada.

MONTH(expr)

MONTHNAME

MONTHNAME(Order_Time)

Retorna o nome do mês para uma expressão de data especificada.

MONTHNAME(expr)

MONTH_OF_QUARTER

MONTH_OF_QUARTER(Order_Date)

Retorna o número (entre 1 e 3) que corresponde ao mês do trimestre para uma expressão de data especificada.

MONTH_OF_QUARTER(expr)

NOW

NOW()

Retorna o timestamp atual. A função NOW é equivalente à função CURRENT_TIMESTAMP.

NOW()

QUARTER_OF_YEAR

QUARTER_OF_YEAR(Order_Date)

Retorna o número (entre 1 e 4) que corresponde ao trimestre do ano para uma expressão de data especificada.

QUARTER_OF_YEAR(expr)

SECOND

SECOND(Order_Time)

Retorna o número (entre 0 e 59) que corresponde aos segundos para uma expressão de horário especificada.

SECOND(expr)

TIMESTAMPADD

TIMESTAMPADD(SQL_TSI_MONTH, 12,Time."Order Date")

Adiciona um número especificado de intervalos a um timestamp e retorna um único timestamp.

As opções de intervalo são: SQL_TSI_SECOND, SQL_TSI_MINUTE, SQL_TSI_HOUR, SQL_TSI_DAY, SQL_TSI_WEEK, SQL_TSI_MONTH, SQL_TSI_QUARTER e SQL_TSI_YEAR

TIMESTAMPADD(interval, expr, timestamp)

TIMESTAMPDIFF

TIMESTAMPDIFF(SQL_TSI_MONTH, Time."Order Date",CURRENT_DATE)

Retorna o número total de intervalos especificados entre dois timestamps.

Use os mesmos intervalos de TIMESTAMPADD.

TIMESTAMPDIFF(interval, expr, timestamp2)

WEEK_OF_QUARTER

WEEK_OF_QUARTER(Order_Date)

Retorna um número (entre 1 e 13) que corresponde à semana do trimestre para a expressão de data especificada.

WEEK_OF_QUARTER(expr)

WEEK_OF_YEAR

WEEK_OF_YEAR(Order_Date)

Retorna um número (entre 1 e 53) que corresponde à semana do ano para a expressão de data especificada.

WEEK_OF_YEAR(expr)

YEAR

YEAR(Order_Date)

Retorna o ano para a expressão de data especificada.

YEAR(expr)

Dicas sobre o Uso de Funções de Data

Eis aqui algumas dicas sobre como obter os melhores resultados ao usar funções de data em suas pastas de trabalho para calcular períodos fiscais, converter strings em datas, mostrar uma data e horário em um fuso horário específico e calcular diferenças ao longo do tempo.

Calcular ano, trimestre e mês fiscais:

As áreas de assunto em geral têm uma dimensão de tempo; portanto, você pode usar os períodos pré-configurados, como trimestre fiscal, mês fiscal e semana fiscal. Se houver apenas um campo de data, você mesmo poderá calcular esses períodos usando funções de data.

Este exemplo calcula o trimestre fiscal:

'FY'||cast(YEAR(TIMESTAMPADD(SQL_TSI_MONTH, 7,<date field>)) as char)||'Q'||cast(QUARTER(TIMESTAMPADD(SQL_TSI_MONTH, 7,<same date field>)) as char)

Este exemplo calcula o ano e o mês fiscais:

'FY'||cast(YEAR(TIMESTAMPADD(SQL_TSI_MONTH, 7,<date field>)) as char)||cast(MONTHNAME(<same date field>) as char)

Observações:

  • || concatena valores.
  • cast (xxx(date) as char) extrai uma parte de um campo de data.
  • TIMESTAMPADD adiciona (ou subtrai) períodos de uma data. Este exemplo usa o valor do parâmetro SQL_TSI_MONTH para adicionar meses.

Os cálculos acima funcionam bem em tabelas, mas quando usados em filtros, o espaçamento entre os valores retornados pode parecer estranho. Nesse caso, use um cálculo mais limpo, porém mais complexo, com base nestes exemplos:

'FY'||evaluate ('to_char(%1,%2)'as char,(EVALUATE('add_months(%1,%2)' as date,<date field>,7)),'YY')||'-Q'||evaluate ('to_char(%1,%2)'as char,(EVALUATE('add_months(%1,%2)' as date,<same date field>,7)),'Q')
'FY'||evaluate ('to_char(%1,%2)'as char,(EVALUATE('add_months(%1,%2)' as date,<date field>,7)),'YY')||'-'||evaluate ('to_char(%1,%2)'as char,<same date field>,'MON')

Converter uma string em data:

O Oracle Analytics analisa o perfil dos seus dados e fornece recomendações de enriquecimento para extrair e converter datas. Caso você mesmo precise converter uma string em data, use essas dicas.
  • No designer de pasta de trabalho, navegue no painel de dados até a coluna que deseja converter. Em seguida, clique com o botão direito do mouse e selecione Converter em Data. Configure a data, depois clique em Adicionar Etapa.

  • No designer de pasta de trabalho, navegue no painel de dados até a coluna que deseja converter. Em seguida, clique com o botão direito do mouse e selecione Editar. Configure a data, depois clique em Adicionar Etapa.

    Na caixa de texto que contém o nome da sua coluna em azul, insira To_DateTime( antes do nome da coluna. Em seguida, adicione o formato de data que deseja usar após o nome da coluna, seguido de ). Depois, clique em Adicionar Etapa.
    Descrição de GUID-ADBD035B-A62A-4DED-8768-553365BAABFE-default.png segue
    .png

    Quando você usa a opção Editar para criar sua função de conversão de data, também pode usar Allow_Variable_Digits para processar valores de coluna com números de um dígito ou dois dígitos, e argumentos Null_On_Error para descartar linhas que não correspondem ao padrão exigido. Consulte também REPLACE e CAST para ver formas alternativas de processar dados que não correspondem ao padrão exigido.

    Como alternativa ao uso de To_DateTime(), use CAST() para alterar o tipo de dados de um valor. Por exemplo, CAST(SalesDate AS DATE).

    Adicionalmente, use a opção Substituir. No designer de pasta de trabalho, navegue no painel de dados até a coluna que deseja converter. Em seguida, clique com o botão direito do mouse e selecione Substituir. Configure o tipo de substituição desejado e clique em Adicionar Etapa.

Mostrar um campo de data e horário em um fuso horário específico:

Use a função NEW_TIME no banco de dados em conjunto com EVALUATE. Por exemplo:

evaluate ('new_time(%1,%2,%3)' as char, "DV - Pipeline and Forecast"."Opportunity"."Last Updated Date",'GMT','AST')

Certifique-se de que o campo de data inclua o componente de horário.

Calcular a diferença ao longo do tempo:

Para mostrar a diferença em número e porcentagem entre agora e ontem, crie cálculos com base nestes exemplos:
  • Calcular uma medida até ontem: filter (Measure using date <= TIMESTAMPADD(SQL_TSI_DAY,-1,CURRENT_DATE))
  • Calcular a diferença: Measure - filter (Measure using date <= TIMESTAMPADD(SQL_TSI_DAY,-1,CURRENT_DATE))
  • Calcular a porcentagem de diferença: 1-(filter (Measure using date <= TIMESTAMPADD(SQL_TSI_DAY,-1,CURRENT_DATE))/Measure display as percentage

Observações:

  • Esses exemplos usam SQL_TSI_DAY; todavia, você pode, como alternativa, usar WEEK e MONTH semana após semana e mês após mês.
  • Esses exemplos funcionam com um calendário normal ou natural. Caso precise de meses e trimestres fiscais, use variáveis do repositório em seus cálculos em vez de TIMESTAMPADD. Como alternativa, combine essa opção com a dica Calcular ano, trimestre e mês fiscais.
  • Algumas áreas de assunto incluem medidas X Anterior pré-calculadas, como PY (ano anterior), PQ (trimestre anterior), que você pode usar para calcular diferenças ao longo do tempo.
  • Como alternativa, você pode usar as funções TIME SERIES: AGO, PERIODROLLING e TODATE. Consulte Funções de Série Temporal.