Imprimir      Abrir versão PDF da ajuda online


Previous Topic

Next Topic

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 indicação de data/hora. (O tipo de dados de indicação de data/hora é uma combinação de data e hora.)

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 atividade 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 atividade 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.

Hour

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.

Minute

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.

Month

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.

Now

Devolve a indicação 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 atividade do Analytics impede o relatório de entrar em cache, o que diminui o desempenho.

Sintaxe:

NOW ()

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.

Second

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 acrescenta um número de intervalos especificado a uma indicação de data/hora especificada. É devolvida uma única indicação de data/hora.

Sintaxe:

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

em que:

interval

The specified interval. Valid values are:

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 acrescentar.

timestamp_expression

A indicação de data/hora utilizada como base no cálculo.

Uma expressão de número inteiro nula ou expressão de indicação 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 acrescenta apenas o número inteiro especificado (integer_expression) ao componente adequado da indicação de data/hora, baseada no intervalo. Acrescentar uma semana significa acrescentar sete dias e acrescentar um trimestre significa acrescentar 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 acrescentar ao componente de dia de uma indicação 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 acrescentar ao componente de mês de uma indicação de data/hora, esta função verifica se a indicação de data/hora resultante tem um número suficiente de dias para o componente de dia. Por exemplo, se acrescentar 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 acrescentar ao componente de ano de uma indicação 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 a indicação 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 a indicação de data/hora resultante quando são acrescentados 3 dias a 2000-02-27 14:30:00. Uma vez que fevereiro, 2000 é um ano bissexto, isto devolve a única indicação 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 a indicação de data/hora resultante quando são acrescentados 7 meses a 1999-07-31 0:0:0. Isto devolve a única indicação 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 a indicação de data/hora resultante quando são acrescentados 25 minutos a 2000-07-31 23:35:00. Isto devolve a única indicação 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 duas indicações de data/hora.

Sintaxe:

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

em que:

interval

The specified interval. Valid values are:

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

A indicação de data/hora a subtrair da segunda indicação de data/hora.

timestamp_expression2

A segunda indicação de data/hora. O valor de timestamp_expression1 é subtraído a partir desta indicação de data/hora para determinar a diferença.

Um parâmetro de expressão de indicação 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 indicação 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 das duas indicações de data/hora para calcular o número total de intervalos para cada indicação 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 indicação de data/hora acrescentando o componente de mês e doze vezes o componente de ano.

Finalmente, a função subtrai o número total de intervalos da primeira indicação de data/hora ao número total de intervalos da segunda indicação 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 as indicações 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 Agosto 2021 Copyright © 2005, 2021, Oracle e/ou respetivas associadas. Legal Notices.