Buscar..


Fecha aritmética

Oracle admite los tipos de datos DATE (incluye el tiempo al segundo más cercano) y TIMESTAMP (incluye el tiempo a fracciones de un segundo), lo que permite la aritmética (suma y resta) de forma nativa. Por ejemplo:

Para llegar al día siguiente:

select to_char(sysdate + 1, 'YYYY-MM-DD') as tomorrow from dual;

Para obtener el día anterior:

select to_char(sysdate - 1, 'YYYY-MM-DD') as yesterday from dual;

Para agregar 5 días a la fecha actual:

select to_char(sysdate + 5, 'YYYY-MM-DD') as five_days_from_now from dual;

Para agregar 5 horas a la fecha actual:

select to_char(sysdate + (5/24), 'YYYY-MM-DD HH24:MI:SS') as five_hours_from_now from dual;

Para agregar 10 minutos a la fecha actual:

select to_char(sysdate + (10/1440), 'YYYY-MM-DD HH24:MI:SS') as ten_mintues_from_now from dual;

Para agregar 7 segundos a la fecha actual:

select to_char(sysdate + (7/86400), 'YYYY-MM-DD HH24:MI:SS') as seven_seconds_from_now from dual;

Para seleccionar filas en las que hire_date sea ​​hace 30 días o más:

select * from emp where hire_date < sysdate - 30;

Para seleccionar filas donde la columna last_updated está en la última hora:

select * from logfile where last_updated >= sysdate - (1/24);

Oracle también proporciona el INTERVAL tipo de datos incorporado, que representa una duración de tiempo (por ejemplo, 1,5 días, 36 horas, 2 meses, etc.). También se pueden usar con aritmética con expresiones DATE y TIMESTAMP . Por ejemplo:

select * from logfile where last_updated >= sysdate - interval '1' hour;

Función Add_months

Sintaxis: add_months(p_date, integer) return date;

La función Add_months agrega meses amt a la fecha p_date.

SELECT add_months(date'2015-01-12', 2) m FROM dual;
METRO
2015-03-12

También puedes restar meses usando un amt negativo.

SELECT add_months(date'2015-01-12', -2) m FROM dual;
METRO
2014-11-12

Cuando el mes calculado tenga menos días como la fecha dada, se devolverá el último día del mes calculado.

SELECT to_char( add_months(date'2015-01-31', 1),'YYYY-MM-DD') m FROM dual;
METRO
2015-02-28


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow