As funções de data e horário manipulam dados com base em DATE
e DATETIME
.
Função | Exemplo | Descrição | Sintaxe |
---|---|---|---|
CURRENT_Date |
|
Retorna a data atual. A data é determinada pelo sistema no qual o Oracle BI está sendo executado. |
|
CURRENT_TIME |
|
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_TIMESTAMP |
|
Retorna a data/timestamp atual ao número especificado de dígitos de precisão. |
|
DAYNAME |
|
Retorna o nome do dia da semana para uma expressão de data especificada. |
|
DAYOFMONTH |
|
Retorna o número que corresponde ao dia do mês para uma expressão de data especificada. |
|
DAYOFWEEK |
|
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. |
|
DAYOFYEAR |
|
Retorna o número (entre 1 e 366) que corresponde ao dia do ano para uma expressão de data especificada. |
|
DAY_OF_QUARTER |
|
Retorna um número (entre 1 e 92) que corresponde ao dia do trimestre para a expressão de data especificada. |
|
HOUR |
|
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. |
|
MINUTE |
|
Retorna um número (entre 0 e 59) que corresponde ao minuto para uma expressão de horário especificada. |
|
MONTH |
|
Retorna o número (entre 1 e 12) que corresponde ao mês para uma expressão de data especificada. |
|
MONTHNAME |
|
Retorna o nome do mês para uma expressão de data especificada. |
|
MONTH_OF_QUARTER |
|
Retorna o número (entre 1 e 3) que corresponde ao mês do trimestre para uma expressão de data especificada. |
|
NOW |
|
Retorna o timestamp atual. A função |
|
QUARTER_OF_YEAR |
|
Retorna o número (entre 1 e 4) que corresponde ao trimestre do ano para uma expressão de data especificada. |
|
SECOND |
|
Retorna o número (entre 0 e 59) que corresponde aos segundos para uma expressão de horário especificada. |
|
TIMESTAMPADD |
|
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 |
|
TIMESTAMPDIFF |
|
Retorna o número total de intervalos especificados entre dois timestamps. Use os mesmos intervalos de TIMESTAMPADD. |
|
WEEK_OF_QUARTER |
|
Retorna um número (entre 1 e 13) que corresponde à semana do trimestre para a expressão de data especificada. |
|
WEEK_OF_YEAR |
|
Retorna um número (entre 1 e 53) que corresponde à semana do ano para a expressão de data especificada. |
|
YEAR |
|
Retorna o ano para a expressão de data especificada. |
|
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:
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.
.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:
filter (Measure using date <= TIMESTAMPADD(SQL_TSI_DAY,-1,CURRENT_DATE))
Measure - filter (Measure using date <= TIMESTAMPADD(SQL_TSI_DAY,-1,CURRENT_DATE))
1-(filter (Measure using date <= TIMESTAMPADD(SQL_TSI_DAY,-1,CURRENT_DATE))/Measure display as percentage
Observações:
SQL_TSI_DAY
; todavia, você pode, como alternativa, usar WEEK e MONTH semana após semana e mês após mês.