Difficulty: Easy

Data aritmética é muito frequentes em banco de dados aplicativo. Em do Oracle, você pode adicionar, subtrair e comparar DATA colunas, mas você não pode se multiplicar ou dividir. Oracle armazena século, ano, mês, dia, hora, minuto e segundo, como parte da coluna DATA.

Agora vamos dar uma olhada em como adicionar o dia / hora / minuto / segundo para uma data valor. Oracle espera um número constante na data aritmética como número de dias. Em outras palavras, você precisa converter horas, minutos e segundos a fração de um dia e, em seguida, você pode adicionar ou subtrair esse valor a partir de uma data valor. Aqui estão alguns exemplos:

  1. Adicione um dia.
    selecione to_date ('02-22-2008 10:30:30 ',' yyyy-mm-dd hh24: mi: ss'), hoje,
    to_date ('02-22-2008 10:30:30 ',' yyyy-mm-dd hh24: mi: ss') +1 next_day
    a partir de dupla;
    HOJE NEXT_DAY
    ------------------------- -------------------------
    02-22-08 10:30:30 02-23-08 10:30:30
  2. Adicione uma hora.
    selecione to_date ('02-22-08 10:30:30 ',' mm-dd-aa hh24: mi: ss'), hoje,
    to_date ('02-22-08 10:30:30 ',' mm-dd-aa hh24: mi: ss') + 1 / 24 next_hour
    a partir de dupla;
    HOJE NEXT_HOUR
    ------------------------ ------------------------
    02-22-08 10:30:30 02-22-08 11:30:30
  3. Adicionar um minuto.
    selecione to_date ('02-22-08 10:30:30 ',' mm-dd-aa hh24: mi: ss'), hoje,
    to_date ('02-22-08 10:30:30 ',' mm-dd-aa hh24: mi: ss') + 1 / (24 * 60) next_min
    a partir de dupla;
    HOJE NEXT_MIN
    ------------------------ ------------------------
    02-22-08 10:30:30 02-22-08 10:31:30
  4. Adicione um segundo.
    selecione to_date ('02-22-08 10:30:30 ',' mm-dd-aa hh24: mi: ss'), hoje,
    to_date ('02-22-08 10:30:30 ',' mm-dd-aa hh24: mi: ss') + 1 / (24 * 60 * 60) next_sec
    a partir de dupla;
    HOJE NEXT_SEC
    ------------------------ ------------------------
    02-22-08 10:30:30 02-22-08 10:30:31
  5. Subtrair um dia.
    selecione to_date ('02-22-2008 10:30:30 ',' yyyy-mm-dd hh24: mi: ss'), hoje,
    to_date ('02-22-2008 10:30:30 ',' yyyy-mm-dd hh24: mi: ss') - 1 prev_day
    a partir de dupla;
    HOJE PREV_DAY
    ------------------------- -------------------------
    02-22-08 10:30:30 02-21-08 10:30:30
  6. Subtrair uma hora.
    selecione to_date ('02-22-08 10:30:30 ',' mm-dd-aa hh24: mi: ss'), hoje,
    to_date ('02-22-08 10:30:30 ',' mm-dd-aa hh24: mi: ss') - 1 / 24 prev_hour
    a partir de dupla;
    HOJE PREV_HOUR
    ------------------------ ------------------------
    02-22-08 10:30:30 02-22-08 09:30:30
  7. Subtrair um minuto.
    selecione to_date ('02-22-08 10:30:30 ',' mm-dd-aa hh24: mi: ss'), hoje,
    to_date ('02-22-08 10:30:30 ',' mm-dd-aa hh24: mi: ss') - 1 / (24 * 60) prev_min
    a partir de dupla;
    HOJE PREV_MIN
    ------------------------ ------------------------
    02-22-08 10:30:30 02-22-08 10:29:30
  8. Subtrair um segundo.
    selecione to_date ('02-22-08 10:30:30 ',' mm-dd-aa hh24: mi: ss'), hoje,
    to_date ('02-22-08 10:30:30 ',' mm-dd-aa hh24: mi: ss') - 1 / (24 * 60 * 60) prev_sec
    a partir de dupla;
    HOJE PREV_SEC
    ------------------------ ------------------------
    02-22-08 10:30:30 02-22-08 10:30:29

Data valor no Oracle tem duas componentes, data e hora. Oracle armazena hora, minuto e segundo, juntamente com a data. Como você pode ver a partir de exemplos acima, data em Oracle aritmética é simples e fácil de usar.

Average rating: