As funções de data e hora manipulam dados baseados em DATE
e DATETIME
.
Função | Exemplo | Descrição | Sintaxe |
---|---|---|---|
CURRENT_Date |
|
Devolve a data atual. A data é determinada pelo sistema no qual o Oracle BI está a ser executado. |
|
CURRENT_TIME |
|
Devolve a hora atual com o número especificado de algarismos de precisão, por exemplo: HH:MM:SS.SSS Se não for especificado nenhum argumento, a função devolve a precisão por omissão. |
|
CURRENT_TIMESTAMP |
|
Devolve a indicação de data/hora atual com o número especificado de algarismos de precisão. |
|
DAYNAME |
|
Devolve o nome do dia da semana para uma expressão de data especificada. |
|
DAYOFMONTH |
|
Devolve o número correspondente ao dia do mês para uma expressão de data especificada. |
|
DAYOFWEEK |
|
Devolve um número entre 1 e 7 correspondente ao dia da semana para uma expressão de data especificada. Por exemplo, 1 corresponde sempre a domingo, 2 corresponde a segunda-feira, e assim sucessivamente, até sábado que devolve 7. |
|
DAYOFYEAR |
|
Devolve um número entre 1 e 366 correspondente ao dia do ano para uma expressão de data especificada. |
|
DAY_OF_QUARTER |
|
Devolve um número (entre 1 e 92) correspondente ao dia do trimestre para uma expressão de data especificada. |
|
HOUR |
|
Devolve um número (entre 0 e 23) correspondente à hora para uma expressão de hora especificada. Por exemplo, 0 corresponde a 12 a.m. e 23 corresponde a 11 p.m. |
|
MINUTE |
|
Devolve um número (entre 0 e 59) correspondente ao minuto para uma expressão de hora especificada. |
|
MONTH |
|
Devolve o número (entre 0 e 12) correspondente ao mês para uma expressão de data especificada. |
|
MONTHNAME |
|
Devolve o nome do mês para uma expressão de data especificada. |
|
MONTH_OF_QUARTER |
|
Devolve o número (entre 1 e 3) correspondente ao mês no trimestre para uma expressão de data especificada. |
|
NOW |
|
Devolve a indicação de data/hora atual. A função |
|
QUARTER_OF_YEAR |
|
Devolve o número (entre 1 e 4) correspondente ao trimestre do ano para uma expressão de data especificada. |
|
SECOND |
|
Devolve o número (entre 0 e 59) correspondente aos segundos para uma expressão de hora especificada. |
|
TIMESTAMPADD |
|
Acrescenta um número especificado de intervalos a uma indicação de data/hora e devolve uma indicação de data/hora única. As opções do intervalo são: SQL_TSI_SECOND, SQL_TSI_MINUTE, SQL_TSI_HOUR, SQL_TSI_DAY, SQL_TSI_WEEK, SQL_TSI_MONTH, SQL_TSI_QUARTER, SQL_TSI_YEAR |
|
TIMESTAMPDIFF |
|
Devolve o número total de intervalos especificados entre duas indicações de data/hora. Utilize os mesmos intervalos que TIMESTAMPADD. |
|
WEEK_OF_QUARTER |
|
Devolve um número (entre 1 e 13) correspondente à semana do trimestre para a expressão de data especificada. |
|
WEEK_OF_YEAR |
|
Devolve um número (entre 1 e 53) correspondente à semana do ano para a expressão de data especificada. |
|
YEAR |
|
Devolve o ano para a expressão de data especificada. |
|
Seguem-se algumas sugestões sobre como obter os melhores resultados ao utilizar funções de data nos seus livros para calcular períodos fiscais, converter cadeias de caracteres em datas, mostrar uma data e hora num fuso horário específico e calcular diferenças ao longo do tempo.
Calcular o ano fiscal, o trimestre fiscal e o mês fiscal:
Normalmente, as áreas de atividade têm uma dimensão de tempo, pelo que pode utilizar os períodos pré-configurados, como trimestre fiscal, mês fiscal e semana fiscal. Se tiver apenas um campo de data, pode calcular estes períodos utilizando 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 fiscal e o mês fiscal:
'FY'||cast(YEAR(TIMESTAMPADD(SQL_TSI_MONTH, 7,<date field>)) as char)||cast(MONTHNAME(<same date field>) as char)
Notas:
||
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 utiliza o valor do parâmetro SQL_TSI_MONTH para acrescentar meses.Os cálculos acima funcionam bem em tabelas, mas quando utilizados em filtros, o espaçamento entre os valores devolvidos poderá parecer estranho. Neste caso, utilize um cálculo mais simples mas 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 cadeia de caracteres numa data:
Na caixa de texto que contém o nome da sua coluna a azul, insira To_DateTime(
antes do nome da coluna e, em seguida, acrescente o formato de data que pretende utilizar após o nome da coluna, seguido de )
. Depois, clique em Acrescentar Passo.
.png
Quando utiliza a opção Editar para criar a sua função de conversão de data, também pode utilizar Allow_Variable_Digits
para processar valores de colunas com números de um ou dois dígitos e argumentos Null_On_Error
para excluir linhas que não correspondam ao padrão obrigatório. Consulte também REPLACE e CAST para formas alternativas de processar dados que não correspondem ao padrão obrigatório.
Como alternativa à utilização de To_DateTime()
, utilize CAST() para alterar o tipo de dados de um valor. Por exemplo, CAST(SalesDate AS DATE)
.
Adicionalmente, utilize a opção Substituir. No designer do livro, navegue no painel de dados para a coluna que pretende converter e, em seguida, clique com o botão direito do rato e selecione Substituir. Configure o tipo de substituição pretendido e, em seguida, clique em Acrescentar Passo.
Mostrar um campo de data e hora num fuso horário específico:
Utilize a função NEW_TIME na base 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 inclui o componente de hora.
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
Notas:
SQL_TSI_DAY
, mas em alternativa pode utilizar WEEK e MONTH, semana após semana e mês após mês.