![]() |
|
Funções de data/hora do calendárioAs 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_DateDevolve a data atual. A data é determinada pelo computador. O valor não contém um componente de hora. Sintaxe: CURRENT_DATE Current_TimeDevolve 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:
Current_TimeStampDevolve 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:
Day_Of_QuarterDevolve 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:
DayNameDevolve o nome do dia da semana (em inglês) da data especificada. Sintaxe: DAYNAME (date_expression) em que:
DayOfMonthDevolve o número que corresponde ao dia do mês da data especificada. Sintaxe: DAYOFMONTH (date_expression) em que:
DayOfWeekDevolve 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:
DayOfYearDevolve o número (entre 1 e 366) que corresponde ao dia do ano de uma data especificada. Sintaxe: DAYOFYEAR (date_expression) em que:
HourDevolve 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:
MinuteDevolve um número (entre 0 e 59) que corresponde aos minutos de uma hora especificada. Sintaxe: MINUTE (time_expression) em que:
MonthDevolve o número (entre 1 e 12) que corresponde ao mês de uma data especificada. Sintaxe: MONTH (date_expression) em que:
Month_Of_QuarterDevolve 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:
MonthNameDevolve o nome do mês (em inglês) de uma data especificada. Sintaxe: MONTHNAME (date_expression) em que:
NowDevolve 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_YearDevolve o número (entre 1 e 4) que corresponde ao trimestre de uma data especificada. Sintaxe: QUARTER_OF_YEAR (expressão_data) em que:
SecondDevolve o número (entre 0 e 59) que corresponde aos segundos de uma hora especificada. Sintaxe: SECOND (time_expression) em que:
TimestampAddA 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:
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’) TimeStampDiffA 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:
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 resultadosO 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_QuarterDevolve um número (entre 1 e 13) que corresponde à semana do trimestre da data especificada. Sintaxe: WEEK_OF_QUARTER (expressão_data) em que:
Week_Of_YearDevolve um número (entre 1 e 53) que corresponde à semana do ano da data especificada. Sintaxe: WEEK_OF_YEAR (expressão_data) em que:
AnoDevolve o ano da data especificada. Sintaxe: YEAR (date_expression) em que:
Exemplo: YEAR (CURRENT_DATE) |
Publicado em Agosto 2021 | Copyright © 2005, 2021, Oracle e/ou respetivas associadas. Legal Notices. |