![]() |
|
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 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_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 informações empresariais 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 informações empresariais 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:
HoraDevolve 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:
MinutoDevolve um número (entre 0 e 59) que corresponde aos minutos de uma hora especificada. Sintaxe: MINUTE (time_expression) em que:
MêsDevolve 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:
AgoraDevolve 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_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:
SegundosDevolve 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 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:
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’) TimeStampDiffA 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:
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 resultadosO 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_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 2018 | Copyright © 2005, 2018, Oracle. Todos os direitos reservados. Legal Notices. |