No Oracle Analytics, os administradores definem o fuso horário por omissão utilizado para os cálculos de data e hora em Definições do Sistema. Esta definição global é aplicada a todos os cálculos. Este tópico explica como utilizar a função TIMESTAMPADD
para especificar outro fuso horário se pretender utilizar uma indicação de data/hora diferente num determinado cálculo.
Definir o Fuso Horário por Omissão para Cálculos nas Definições do Sistema
CURRENT_DATE
CURRENT_TIME()
CURRENT_TIMESTAMP()
NOW()
Como administrador, pode alterar a indicação de data/hora utilizada nos cálculos com a opção Fuso Horário Por Omissão para Cálculos de Datas na Consola, em Definições Avançadas do Sistema. Selecione o fuso horário pretendido na lista pendente e aplique as alterações para que o novo valor entre em vigor.
.png
Para mais informações sobre as definições de fuso horário global, consulte Definições do Sistema - Opções de Formato.
Utilizar o Fuso Horário Específico para Indicações de Data/Hora nos Cálculos
Para gerar uma indicação de data/hora diferente da definição do sistema nos seus cálculos, utilize a função TIMESTAMPADD
em conjunto com CURRENT_TIMESTAMP()
ou NOW()
. O cálculo básico TIMESTAMPADD
é:
TIMESTAMPADD(SQL_TSI_<<interval>>, <<integer expression>>, <<timestamp expression>>)
Para os cálculos de indicação de data/hora, HOUR
é o intervalo e a diferença horária é a diferença em horas entre UTC e o fuso horário para geração do relatório. Por exemplo:
TIMESTAMPADD(SQL_TSI_HOUR, -6,CURRENT_TIMESTAMP(5))
Este cálculo devolve a indicação de data/hora atual na hora dos E.U.A./Regiões Montanhosas. Pode criar a nova coluna de indicação de data/hora como uma coluna derivada na origem da tabela lógica ou efetuar a respetiva correspondência diretamente para a base de dados. A diferença é onde o cálculo deve ser executado; isto é, no Oracle Analytics ou na base de dados. A figura seguinte mostra um cálculo com correspondência direta para a base de dados na caixa de diálogo Criador de Expressões - Expressão.
Quando o fuso horário por omissão é definido como UTC, a função CURRENT_DATE
não devolve a data correta para determinadas horas do dia em relação ao fuso horário de um utilizador. Por exemplo, quando é meia-noite em UTC, a data local não corresponde à data de UTC durante a diferença horária.
Converter o cálculo da indicação de data/hora como uma data resolve este problema. Por exemplo:
cast(TIMESTAMPADD(SQL_TSI_HOUR, -6,CURRENT_TIMESTAMP) as date)
A figura seguinte mostra um cálculo criado como uma coluna derivada na caixa de diálogo Criador de Expressões - Coluna lógica derivada.
Para relatórios exclusivos ou singulares, pode criar cálculos de indicação de data/hora ao nível do relatório numa visualização de dados ou numa análise clássica. Se planeia reutilizar os cálculos, é mais fácil defini-los como colunas no modelo semântico (ou ficheiro RPD).
Para mais informações sobre as funções mencionadas neste tópico, consulte Funções de Data e Hora e Funções de Séries de Tempo.