<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pt-BR">
	<id>https://wiki.ourominas.com.br/index.php?action=history&amp;feed=atom&amp;title=Aritm%C3%A9tica_de_Datas_no_Oracle</id>
	<title>Aritmética de Datas no Oracle - Histórico de revisão</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.ourominas.com.br/index.php?action=history&amp;feed=atom&amp;title=Aritm%C3%A9tica_de_Datas_no_Oracle"/>
	<link rel="alternate" type="text/html" href="https://wiki.ourominas.com.br/index.php?title=Aritm%C3%A9tica_de_Datas_no_Oracle&amp;action=history"/>
	<updated>2026-04-17T13:42:19Z</updated>
	<subtitle>Histórico de revisões para esta página neste wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://wiki.ourominas.com.br/index.php?title=Aritm%C3%A9tica_de_Datas_no_Oracle&amp;diff=1619&amp;oldid=prev</id>
		<title>imported&gt;Admin: uma edição</title>
		<link rel="alternate" type="text/html" href="https://wiki.ourominas.com.br/index.php?title=Aritm%C3%A9tica_de_Datas_no_Oracle&amp;diff=1619&amp;oldid=prev"/>
		<updated>2020-08-08T03:12:52Z</updated>

		<summary type="html">&lt;p&gt;uma edição&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;pt-BR&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Edição anterior&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Edição das 03h12min de 8 de agosto de 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-notice&quot; lang=&quot;pt-BR&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(Sem diferença)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key omph_wiki-maquine_:diff:1.41:old-1618:rev-1619 --&gt;
&lt;/table&gt;</summary>
		<author><name>imported&gt;Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.ourominas.com.br/index.php?title=Aritm%C3%A9tica_de_Datas_no_Oracle&amp;diff=1618&amp;oldid=prev</id>
		<title>2532252&gt;Jefferson em 20h34min de 18 de abril de 2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.ourominas.com.br/index.php?title=Aritm%C3%A9tica_de_Datas_no_Oracle&amp;diff=1618&amp;oldid=prev"/>
		<updated>2015-04-18T20:34:22Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Eduardo Corrêa Gonçalves&lt;br /&gt;
Instituto Brasileiro de Geografia e Estatística – IBGE&lt;br /&gt;
E-mail: eduardo.correa@ibge.gov.br&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Introdução&lt;br /&gt;
&lt;br /&gt;
Este artigo descreve a maneira pela qual podem ser realizadas operações aritméticas envolvendo campos DATE no SGBD Oracle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. O Tipo de Dado DATE&lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
Conforme todo desenvolvedor Oracle sabe, os campos do tipo DATE costumam ser usados em tabelas para a representação de informação referente à data e hora de algum evento. Campos do tipo DATE ocupam apenas 7 bytes e são capazes armazenar datas com a precisão na casa dos segundos; Melhor detalhando, um campo DATE é capaz de manter as seguintes informações temporais associadas a um determinado evento: século, ano, mês, dia, hora, minuto e segundo de ocorrência do evento.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Para aplicações onde necessita-se manter informações de tempo com maior precisão, o Oracle disponibiliza outro tipo de dado, denominado TIMESTAMP. Este tipo representa uma extensão do tipo DATE que é capaz de gerenciar informações na ordem de fração de segundo (milissegundos, microssegundos, etc).&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
3. Aritmética de Datas&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
O que poucos desenvolvedores Oracle sabem é que este SGBD disponibiliza uma aritmética bastante simples para a manipulação do tipo de dado DATE. É possível somar (e subtrair) constantes numéricas a uma data de maneira rápida e fácil.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Em operações aritméticas envolvendo datas, o Oracle interpreta constantes numéricas como quantidade de dias. Desta forma, se você deseja obter a data do dia seguinte através de uma instrução SQL, basta fazer SYSDATE + 1:&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
SELECT SYSDATE + 1 as AMANHA FROM DUAL;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
De maneira análoga, se você quiser recuperar num mesmo SELECT a data corrente e também a data equivalente a data corrente mais 30 dias, basta executar a seguinte instrução:&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; SELECT SYSDATE, SYSDATE + 30 FROM DUAL;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
SYSDATE              SYSDATE+30&lt;br /&gt;
&lt;br /&gt;
--------------      -------------------&lt;br /&gt;
&lt;br /&gt;
25/06/07             25/07/07&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para obter a data da “semana passada” (data de 7 dias atrás), utilize a seguinte instrução:&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; SELECT SYSDATE, SYSDATE - 7 FROM DUAL;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
SYSDATE                     SYSDATE - 7&lt;br /&gt;
&lt;br /&gt;
--------------             -------------------&lt;br /&gt;
&lt;br /&gt;
25/06/07                   18/06/07&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
3.1 Lidando com Horas, Minutos e Segundos&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Em muitas situações práticas poderemos estar interessados em adicionar ou subtrair não dias, mas horas, minutos ou segundos do valor de uma data. Isto também é possível no Oracle. No entanto, o SGBD solicitará com que seja especificada uma “fração de dia” adequada para a operação aritmética. Sabemos que um dia possui:&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
   -  24 horas.&lt;br /&gt;
 &lt;br /&gt;
   -  24 x 60 = 1440 minutos.&lt;br /&gt;
 &lt;br /&gt;
   -  24 x 60 x 60 = 86.400 segundos.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Com isto, se desejamos somar 5 minutos a uma determinada data no Oracle, devemos somar a fração 5/1440 a esta data!  Observe este cálculo no exemplo a seguir:&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 SQL&amp;gt; SELECT&lt;br /&gt;
 &lt;br /&gt;
          TO_CHAR(SYSDATE,‘DD/MM/YYYY HH24:MI:SS’) AS AGORA,&lt;br /&gt;
 &lt;br /&gt;
          TO_CHAR(SYSDATE + 5/1440, ‘DD/MM/YYYY HH24:MI:SS’) AGORA_MAIS_5_MIN&lt;br /&gt;
 &lt;br /&gt;
          FROM DUAL;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 AGORA                                        AGORA_MAIS_5_MIN&lt;br /&gt;
 &lt;br /&gt;
 -------------------                   -------------------&lt;br /&gt;
 &lt;br /&gt;
 25/06/2007 18:18:29            25/06/2007 18:23:29&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Para, por exemplo, subtrair 30 segundos, pode-se utilizar o SELECT abaixo:&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 SQL&amp;gt; SELECT&lt;br /&gt;
 &lt;br /&gt;
    TO_CHAR(SYSDATE,‘DD/MM/YYYY HH24:MI:SS’) AS AGORA,&lt;br /&gt;
 &lt;br /&gt;
    TO_CHAR(SYSDATE - 30/86400, ‘DD/MM/YYYY HH24:MI:SS’) TRINTA_SEG_ATRAS&lt;br /&gt;
 &lt;br /&gt;
    FROM DUAL;&lt;br /&gt;
 &lt;br /&gt;
  &lt;br /&gt;
 &lt;br /&gt;
 AGORA                                      TRINTA_SEG_ATRAS &lt;br /&gt;
 &lt;br /&gt;
 --------------------                ------------------&lt;br /&gt;
 &lt;br /&gt;
 25/06/2007 18:22:42          25/06/2007 18:22:12&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Em resumo: Adicionar 1/24 significa somar uma hora a data; Adicionar 1/1440, significa adicionar um minuto; e somar 1/86400 significa somar um segundo. É importante deixar claro que a aritmética do Oracle não permite operações de multiplicação e divisão de constantes sobre datas. Apenas a soma e subtração são disponibilizadas.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Eduardo Corrêa Gonçalves&lt;br /&gt;
Doutorando e mestre em Ciência da Computação pelo Instituto de Computação da Universidade Federal Fluminense (IC/UFF). Atua principalmente nas seguintes linhas de pesquisa: Mineração de Dados, Algoritmos, Banco de Dados e XML.&lt;br /&gt;
&lt;br /&gt;
O que você achou deste post?  Gostei (9) (4)&lt;br /&gt;
Comentário | Tire sua dúvida&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Leia mais em: Aritmética de Datas no Oracle http://www.devmedia.com.br/aritmetica-de-datas-no-oracle/5778#ixzz3KeIgzwD1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Texto retirado do site: http://www.devmedia.com.br/aritmetica-de-datas-no-oracle/5778&lt;br /&gt;
&lt;br /&gt;
[[Category: TI]]&lt;br /&gt;
[[Category: ORACLE]]&lt;/div&gt;</summary>
		<author><name>2532252&gt;Jefferson</name></author>
	</entry>
</feed>