Sumário

Search

  1. Prefácio
  2. A Linguagem de Transformação
  3. Constantes
  4. Operadores
  5. Variáveis
  6. Datas
  7. Funções
  8. Criação de funções personalizadas
  9. Referência de API da Função Personalizada

Referência de Linguagem de Transformação

Referência de Linguagem de Transformação

ROUND (Datas)

ROUND (Datas)

Arredonda uma parte de uma data. Você também pode usar ROUND para arredondar números.
Essa função pode arredondar as seguintes partes de uma data:
Ano
Arredonda a parte do ano de uma data com base no mês.
Mês
Arredonda a parte do mês de uma data com base no dia do mês.
Dia
Arredonda a parte do dia da data com base na hora.
Hora
Arredonda a parte da hora da data com base nos minutos da hora.
Minuto
Arredonda a parte do minuto da data com base nos segundos.
Segundo
Arredonda a parte do segundo da data com base nos milissegundos.
Milissegundo
Arredonda a parte do milissegundo da data com base nos microssegundos.
Microssegundo
Arredonda a parte do microssegundo da data com base nos nanossegundos.
A seguinte tabela mostra as condições usadas pela expressão ROUND e os valores retornados:
Condição
Expressão
Valor de Retorno
Mês entre janeiro e junho, a função retorna 1º de janeiro do mesmo ano e define a hora como 00:00:00.000000000.
ROUND(TO_DATE('04/16/1998 8:24:19','MM/DD/YYYY HH24:MI:SS'),'YY')
01/01/1998 00:00:00.000000000
Mês entre julho e dezembro, a função retorna 1º de janeiro do próximo ano e define a hora como 00:00:00.000000000.
ROUND(TO_DATE('07/30/1998 2:30:55','MM/DD/YYYY HH24:MI:SS'),'YY')
01/01/1999 00:00:00.000000000
Dia do mês entre 1 e 15, a função retorna o primeiro dia do mês de entrada e define a hora como 00:00:00.000000000.
ROUND(TO_DATE('04/15/1998 8:24:19','MM/DD/YYYY HH24:MI:SS'),'MM')
04/01/1998 00:00:00.000000000
Dia do mês entre 16 e o último dia do mês, a função retorna o primeiro dia do próximo mês e define a hora como 00:00:00.000000000.
ROUND(TO_DATE('05/22/1998 10:15:29','MM/DD/YYYY HH24:MI:SS'),'MM')
06/01/1998 00:00:00.000000000
Hora entre 00:00:00 (12 a.m.) e 11:59:59 a.m., a função retorna a data atual e define a hora como 00:00:00.000000000 (12 a.m.).
ROUND(TO_DATE('06/13/1998 2:30:45','MM/DD/YYYY HH24:MI:SS'),'DD')
06/13/1998 00:00:00.000000000
Hora 12:00:00 (12 p.m.) ou superior, a função arredonda a data para o próximo dia e define a hora como 00:00:00.000000000 (12 a.m.).
ROUND(TO_DATE('06/13/1998 22:30:45','MM/DD/YYYY HH24:MI:SS'),'DD')
06/14/1998 00:00:00.000000000
Parte do minuto da hora entre 0 e 29 minutos, a função retorna a hora atual e define os minutos, segundos, millissegundos e nanossegundos como 0.
ROUND(TO_DATE('04/01/1998 11:29:35','MM/DD/YYYY HH24:MI:SS'),'HH')
04/01/1998 11:00:00.000000000
Parte do minuto da hora 30 ou superior, a função retorna a próxima hora e define os minutos, segundos, millissegundos e nanossegundos como 0.
ROUND(TO_DATE('04/01/1998 13:39:00','MM/DD/YYYY HH24:MI:SS'),'HH')
04/01/1998 14:00:00.000000000
Hora entre 0 e 29 segundos, a função retorna o minuto atual e define segundos, milissegundos e nanossegundos como 0.
ROUND(TO_DATE('05/22/1998 10:15:29','MM/DD/YYYY HH24:MI:SS'),'MI')
05/22/1998 10:15:00.000000000
Hora entre 30 e 59 segundos, a função retorna o próximo minuto e define segundos, milissegundos e nanossegundos como 0.
ROUND(TO_DATE('05/22/1998 10:15:30','MM/DD/YYYY HH24:MI:SS'),'MI')
05/22/1998 10:16:00.000000000
Hora entre 0 e 499 milissegundos, a função retorna o segundo atual e define os milissegundos como 0.
ROUND(TO_DATE('05/22/1998 10:15:29.499','MM/DD/YYYY HH24:MI:SS.MS'),'SS')
05/22/1998 10:15:29.000000000
Hora entre 500 e 999 milissegundos, a função retorna o próximo segundo e define os milissegundos como 0.
ROUND(TO_DATE('05/22/1998 10:15:29.500','MM/DD/YYYY HH24:MI:SS.MS'),'SS')
05/22/1998 10:15:30.000000000
Hora entre 0 e 499 microssegundos, a função retorna o milissegundo atual e define os microssegundos como 0.
ROUND(TO_DATE('05/22/1998 10:15:29.498125','MM/DD/YYYY HH24:MI:SS.US'),'MS')
05/22/1998 10:15:29.498000000
Hora entre 500 e 999 microssegundos, a função retorna o próximo milissegundo e define os microssegundos como 0.
ROUND(TO_DATE('05/22/1998 10:15:29.498785','MM/DD/YYYY HH24:MI:SS.US'),'MS')
05/22/1998 10:15:29.499000000
Hora entre 0 e 499 nanossegundos, a função retorna o microssegundo atual e define os nanossegundos como 0.
ROUND(TO_DATE('05/22/1998 10:15:29.498125345','MM/DD/YYYY HH24:MI:SS.NS'),'US')
05/22/1998 10:15:29.498125000
Hora entre 500 e 999 nanossegundos, a função retorna o próximo microssegundo e define os nanossegundos como 0.
ROUND(TO_DATE('05/22/1998 10:15:29.498125876','MM/DD/YYYY HH24:MI:SS.NS'),'US')
05/22/1998 10:15:29.498126000

Sintaxe

ROUND(
date
[,
format
] )
A tabela a seguir descreve os argumentos para este comando:
Argumento
Obrigatório/
Opcional
Descrição
data
Obrigatório
Tipo de dados Data/Hora. Você pode aninhar TO_DATE para converter cadeias em datas antes do arredondamento.
formato
Opcional
Insira uma cadeia de formato válida. Essa é a parte da data que você deseja arredondar. Você pode arredondar apenas uma parte da data. Se você omitir a cadeia de formato, a função arredondará a data para o dia mais próximo.

Valor de Retorno

Data com a parte especificada arredondada. ROUND retorna uma data no mesmo formato que a data de origem. Você pode conectar os resultados dessa função a qualquer porta com um tipo de dados de data e hora.
NULL se você passar um valor nulo para a função.

Exemplos

As seguintes expressões arredondam a parte do ano de dados na porta DATE_SHIPPED:
ROUND( DATE_SHIPPED, 'Y' ) ROUND( DATE_SHIPPED, 'YY' ) ROUND( DATE_SHIPPED, 'YYY' ) ROUND( DATE_SHIPPED, 'YYYY' )
DATE_SHIPPED
RETURN VALUE
Jan 15 1998 2:10:30AM
Jan 1 1998 12:00:00.000000000AM
Apr 19 1998 1:31:20PM
Jan 1 1998 12:00:00.000000000AM
Dec 20 1998 3:29:55PM
Jan 1 1999 12:00:00.000000000AM
NULL
NULL
As seguintes expressões arredondam a parte do mês de cada data na porta DATE_SHIPPED:
ROUND( DATE_SHIPPED, 'MM' ) ROUND( DATE_SHIPPED, 'MON' ) ROUND( DATE_SHIPPED, 'MONTH' )
DATE_SHIPPED
RETURN VALUE
Jan 15 1998 2:10:30AM
Jan 1 1998 12:00:00.000000000AM
Apr 19 1998 1:31:20PM
May 1 1998 12:00:00.000000000AM
Dec 20 1998 3:29:55PM
Jan 1 1999 12:00:00.000000000AM
NULL
NULL
As seguintes expressões arredondam a parte do dia de cada data na porta DATE_SHIPPED:
ROUND( DATE_SHIPPED, 'D' ) ROUND( DATE_SHIPPED, 'DD' ) ROUND( DATE_SHIPPED, 'DDD' ) ROUND( DATE_SHIPPED, 'DY' ) ROUND( DATE_SHIPPED, 'DAY' )
DATE_SHIPPED
RETURN VALUE
Jan 15 1998 2:10:30AM
Jan 15 1998 12:00:00.000000000AM
Apr 19 1998 1:31:20PM
Apr 20 1998 12:00:00.000000000AM
Dec 20 1998 3:29:55PM
Dec 21 1998 12:00:00.000000000AM
Dec 31 1998 11:59:59PM
Jan 1 1999 12:00:00.000000000AM
NULL
NULL
As seguintes expressões arredondam a parte da hora de cada data na porta DATE_SHIPPED:
ROUND( DATE_SHIPPED, 'HH' ) ROUND( DATE_SHIPPED, 'HH12' ) ROUND( DATE_SHIPPED, 'HH24' )
DATE_SHIPPED
RETURN VALUE
Jan 15 1998 2:10:31AM
Jan 15 1998 2:00:00.000000000AM
Apr 19 1998 1:31:20PM
Apr 19 1998 2:00:00.000000000PM
Dec 20 1998 3:29:55PM
Dec 20 1998 3:00:00.000000000PM
Dec 31 1998 11:59:59PM
Jan 1 1999 12:00:00.000000000AM
NULL
NULL
As seguintes expressões arredondam a parte do minuto de cada data na porta DATE_SHIPPED:
ROUND( DATE_SHIPPED, 'MI' )
DATE_SHIPPED
RETURN VALUE
Jan 15 1998 2:10:30AM
Jan 15 1998 2:11:00.000000000AM
Apr 19 1998 1:31:20PM
Apr 19 1998 1:31:00.000000000PM
Dec 20 1998 3:29:55PM
Dec 20 1998 3:30:00.000000000PM
Dec 31 1998 11:59:59PM
Jan 1 1999 12:00:00.000000000AM
NULL
NULL