Поиск…


Арифметика даты

Oracle поддерживает DATE (включая время до ближайшей секунды) и TIMESTAMP (включая время до долей секунды) типов данных, которые позволяют арифметически (сложение и вычитание) изначально. Например:

Чтобы получить следующий день:

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

Чтобы получить предыдущий день:

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

Чтобы добавить 5 дней к текущей дате:

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

Чтобы добавить 5 часов к текущей дате:

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

Чтобы добавить 10 минут к текущей дате:

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

Чтобы добавить 7 секунд к текущей дате:

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

Чтобы выбрать строки, где hire_date - 30 дней назад или более:

select * from emp where hire_date < sysdate - 30;

Чтобы выбрать строки, где last_updated столбец находится в последний час:

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

Oracle также предоставляет встроенный тип данных INTERVAL который представляет собой продолжительность времени (например, 1,5 дня, 36 часов, 2 месяца и т. Д.). Они также могут использоваться с арифметикой с выражениями DATE и TIMESTAMP . Например:

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

Функция Add_months

Синтаксис: add_months(p_date, integer) return date;

Функция Add_months добавляет несколько месяцев к дате p_date.

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

Вы также можете вычитать месяцы, используя отрицательный amt

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

Когда расчетный месяц имеет меньше дней в качестве заданной даты, будет возвращен последний день расчетного месяца.

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


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow