Imprimir      Abrir versão PDF da ajuda online


Tópico anterior

Tópico seguinte

Funções de data/hora do calendário

As funções de data/hora do calendário manipulam os dados nos tipos de dados para data, hora e carimbo de data/hora. (O tipo de dados de carimbo de data/hora é uma combinação de data e hora.)

Todas as funções da data estão em conformidade com a ISO 8601. Isto afeta sobretudo funções como Week_Of_Year e Week_Of_Quarter em que a semana inicial do ano é a primeira semana completa que inclui uma Quinta-feira. Para obter informações detalhadas sobre como as funções da data são calculadas, consulte a norma ISO 8601.

Current_Date

Devolve a data atual. A data é determinada pelo computador. O valor não contém um componente de hora.

Sintaxe:

CURRENT_DATE

Current_Time

Devolve a hora atual. A hora é determinada pelo computador. O valor não contém um componente de data.

Nota: Esta função obtém a hora atual no momento em que o relatório é executado. Ao utilizar esta função com uma área de informações empresariais do Analytics impede o relatório de entrar em cache, o que diminui o desempenho.

Sintaxe:

CURRENT_TIME (n)

em que:

n

Qualquer número inteiro que representa o número de dígitos de precisão com os quais é apresentado a fração de segundo. O argumento é opcional; a função devolve a precisão predefinida quando não é especificado qualquer argumento.

Current_TimeStamp

Devolve a data ou a marca de data/hora atual. A marca de hora/data é determinada pelo computador.

Nota: Esta função obtém a hora atual no momento em que o relatório é executado. Ao utilizar esta função com uma área de informações empresariais do Analytics impede o relatório de entrar em cache, o que diminui o desempenho.

Sintaxe:

CURRENT_TIMESTAMP (n)

em que:

n

Qualquer número inteiro que representa o número de dígitos de precisão com os quais é apresentado a fração de segundo. O argumento é opcional; a função devolve a precisão predefinida quando não é especificado qualquer argumento.

Day_Of_Quarter

Devolve um número (entre 1 e 92) que corresponde ao dia do trimestre da data especificada.

Sintaxe:

DAY_OF_QUARTER (expressão_data)

em que:

date_expression

Qualquer expressão que devolve uma data.

DayName

Devolve o nome do dia da semana (em inglês) da data especificada.

Sintaxe:

DAYNAME (date_expression)

em que:

date_expression

Qualquer expressão que devolve uma data.

DayOfMonth

Devolve o número que corresponde ao dia do mês da data especificada.

Sintaxe:

DAYOFMONTH (date_expression)

em que:

date_expression

Qualquer expressão que devolve uma data.

DayOfWeek

Devolve um número entre 1 e 7 que corresponde ao dia da semana de uma data especificada. O número 1 corresponde a domingo e o número 7 corresponde a sábado.

Sintaxe:

DAYOFWEEK (date_expression)

em que:

date_expression

Qualquer expressão que devolve uma data.

DayOfYear

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

Sintaxe:

DAYOFYEAR (date_expression)

em que:

date_expression

Qualquer expressão que devolve uma data.

Hora

Devolve um número (entre 0 e 23) que corresponde às horas de uma hora especificada. Por exemplo, 0 corresponde a 00:00 e 23 corresponde a 23:00.

Sintaxe:

HOUR (time_expression)

em que:

time_expression

Qualquer expressão que devolve uma hora.

Minuto

Devolve um número (entre 0 e 59) que corresponde aos minutos de uma hora especificada.

Sintaxe:

MINUTE (time_expression)

em que:

time_expression

Qualquer expressão que devolve uma hora.

Mês

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

Sintaxe:

MONTH (date_expression)

em que:

date_expression

Qualquer expressão que devolve uma data.

Month_Of_Quarter

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

Sintaxe:

MONTH_OF_QUARTER (expressão_data)

em que:

date_expression

Qualquer expressão que devolve uma data.

MonthName

Devolve o nome do mês (em inglês) de uma data especificada.

Sintaxe:

MONTHNAME (date_expression)

em que:

date_expression

Qualquer expressão que devolve uma data.

Agora

Devolve o carimbo de data/hora atual. A função NOW é equivalente à função CURRENT_TIMESTAMP.

Nota: Esta função obtém a hora atual no momento em que o relatório é executado. Ao utilizar esta função com uma área de informações empresariais do Analytics impede o relatório de entrar em cache, o que diminui o desempenho.

Sintaxe:

AGORA ()

Quarter_Of_Year

Devolve o número (entre 1 e 4) que corresponde ao trimestre de uma data especificada.

Sintaxe:

QUARTER_OF_YEAR (expressão_data)

em que:

date_expression

Qualquer expressão que devolve uma data.

Segundos

Devolve o número (entre 0 e 59) que corresponde aos segundos de uma hora especificada.

Sintaxe:

SECOND (time_expression)

em que:

time_expression

Qualquer expressão que devolve uma hora.

TimestampAdd

A função TimestampAdd adiciona um número de intervalos especificado a um carimbo de data/hora especificado. É devolvido um único carimbo de data/hora.

Sintaxe:

TimestampAdd (intervalo, expressão_númerointeiro, expressão_carimbodedata/hora)

em que:

intervalo

O intervalo especificado. Os valores válidos 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

integer_expression

Qualquer expressão que devolve um número inteiro. Este é o número de intervalos a adicionar.

timestamp_expression

O carimbo de data/hora utilizado como base no cálculo.

Uma expressão de número inteiro nula ou expressão de carimbo de data/hora nula transmitida para esta função irá originar um valor de devolução nulo.

No cenário mais simples, esta função adiciona apenas o número inteiro especificado (integer_expression) ao componente adequado do carimbo de data/hora, baseado no intervalo. Adicionar uma semana significa adicionar sete dias e adicionar um trimestre significa adicionar três meses. Um número inteiro negativo origina uma subtração (voltar atrás no tempo).

Um excesso do componente especificado (tal como mais do que 60 segundos, 24 horas, doze meses e assim sucessivamente) necessita da adição de um montante adequado ao componente seguinte. Por exemplo, quando adicionar ao componente de dia de um carimbo de data/hora, esta função considera como excesso e assume o número de dias de um determinado mês (incluindo anos bissextos quando Fevereiro tem 29 dias).

Quando adicionar ao componente de mês de um carimbo de data/hora, esta função verifica se o carimbo de data/hora resultante tem um número suficiente de dias para o componente de dia. Por exemplo, se adicionar 1 mês a 2000-05-31 não origina 2000-06-31 uma vez que Junho não tem 31 dias. Esta função reduz o componente de dia para o último dia do mês, 2000-06-30 neste exemplo.

Surge uma questão semelhante quando adicionar ao componente de ano de um carimbo de data/hora que tem Fevereiro como componente de mês e 29 como componente de dia (ou seja, o último dia de Fevereiro num ano bissexto). Se o carimbo de data/hora resultante não coincidir num ano bissexto, a função reduz o componente de dia para 28.

Seguem-se exemplos da função TimestampAdd:

O seguinte exemplo de código solicita o carimbo de data/hora resultante quando são adicionados 3 dias a 2000-02-27 14:30:00. Uma vez que Fevereiro, 2000 é um ano bissexto, isto devolve o único carimbo de data/hora 2000-03-01 14:30:00.

TimestampAdd(SQL_TSI_DAY, 3, TIMESTAMP‘2000-02-27 14:30:00’)

O seguinte exemplo de código solicita o carimbo de data/hora resultante quando são adicionados 7 meses a 1999-07-31 0:0:0. Isto devolve o único carimbo de data/hora 2000-02-29 00:00:00. Tenha em atenção a redução do componente de dia para 29 devido ao mês de Fevereiro com menos dias.

TimestampAdd(SQL_TSI_MONTH, 7, TIMESTAMP‘1999-07-31 00:00:00’)

O seguinte exemplo de código solicita o carimbo de data/hora resultante quando são adicionados 25 minutos a 2000-07-31 23:35:00. Isto devolve o único carimbo de data/hora 2000-08-01 00:00:00. Tenha em atenção a propagação do excesso através do componente de mês.

TimestampAdd(SQL_TSI_MINUTE, 25, TIMESTAMP‘2000-07-31 23:35:00’)

TimeStampDiff

A função TimestampDiff devolve o número total de intervalos especificados entre dois carimbos de data/hora.

Sintaxe:

TimestampDiff (intervalo, expressão_carimbodedata/hora1, expressão_carimbodedata/hora2)

em que:

intervalo

O intervalo especificado. Os valores válidos 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

timestamp_expression1

O carimbo de data/hora a subtrair do segundo carimbo de data/hora.

timestamp_expression2

O segundo carimbo de data/hora. O valor de timestamp_expression1 é subtraído a partir deste carimbo de data/hora para determinar a diferença.

Um parâmetro de expressão de carimbo de data/hora nula transmitido para esta função irá originar um valor de devolução nulo.

Esta função determina primeiro o componente de carimbo de data/hora que corresponde ao parâmetro de intervalo especificado. Por exemplo, SQL_TSI_DAY corresponde ao componente de dia e SQL_TSI_MONTH corresponde ao componente de mês.

Em seguida, a função verifica os componentes de ordenação superiores dos dois carimbos de data/hora para calcular o número total de intervalos para cada carimbo de data/hora. Por exemplo, se o intervalo especificado corresponder ao componente de mês, a função calcula o número total de meses para cada carimbo de data/hora adicionando o componente de mês e doze vezes o componente de ano.

Finalmente, a função subtrai o número total de intervalos do primeiro carimbo de data/hora ao número total de intervalos do segundo carimbo de data/hora.

Quando calcula a diferença em dias, a função efetua o truncamento dos valores de tempo das duas expressões Marca de data/hora e, em seguida, subtrai os valores da data.

Durante o cálculo da diferença em semanas, a função calcula a diferença em dias e divide por sete antes do arredondamento.

Durante o cálculo da diferença em trimestres, a função calcula a diferença em meses e divide por três antes do arredondamento.

Durante o cálculo da diferença em anos, a função calcula a diferença em meses e divide por doze antes do arredondamento.

Função TimestampDiff e exemplo de resultados

O seguinte exemplo de código solicita uma diferença em dias entre os carimbos de data/hora 1998-07-31 23:35:00 e 2000-04-01 14:24:00. Devolve o valor 610. Tenha em atenção que o ano bissexto em 2000 origina um dia adicional.

TimestampDIFF(SQL_TSI_DAY, TIMESTAMP‘1998-07-31 23:35:00’, TIMESTAMP‘2000-04-01 14:24:00’)

Week_Of_Quarter

Devolve um número (entre 1 e 13) que corresponde à semana do trimestre da data especificada.

Sintaxe:

WEEK_OF_QUARTER (expressão_data)

em que:

date_expression

Qualquer expressão que devolve uma data.

Week_Of_Year

Devolve um número (entre 1 e 53) que corresponde à semana do ano da data especificada.

Sintaxe:

WEEK_OF_YEAR (expressão_data)

em que:

date_expression

Qualquer expressão que devolve uma data.

Ano

Devolve o ano da data especificada.

Sintaxe:

YEAR (date_expression)

em que:

date_expression

Qualquer expressão que devolve uma data.

Exemplo:

YEAR (CURRENT_DATE)


Publicado em Setembro 2017 Copyright © 2005, 2017, Oracle. Todos os direitos reservados. Legal Notices.