В данном разделе речь пойдет о функциях работы с датой/временем и функциями предобразования типов для даты. Для хранения даты и времени в Oracle предусмотрен специальный тип DATE. С физической точки зрения это дробное число, целая часть которого хранит количество дней с некоторой базовой даты, а дробная — время. Это позволяет совершать над датами арифметические операции — сложение и вычитание.
Функция SYSDATE
Это одна из самых часто употребляемых функций, она возвращает текущую дату и время по часам сервера. Пример:
SELECT SYSDATE FROM dual
SYSDATE 26.12.2007 16:24:43
Функция ADD_MONTHS(d, x)
Возвращает дату, полученную в результате прибавления к дате d одного или нескольких месяцев. Количество месяцев задается параметров х, причем х может быть отрицательным — в этом случае указанное количество месяцев вычитается из заданной даты.
Пример:
SELECT SYSDATE d,
ADD_MONTHS(SYSDATE, 3) dl,
ADD_MONTHS(SYSDATE, -3) d2 FROM dual
D Dl D2
26.12.2007 16:24:43 26.03.2008 16:24:43 26.09.2007 16:24:43
Функция LASTDAY(d)
Возвращает последнее число месяца, указанного в дате d. Пример:
SELECT SYSDATE d,
LAST_DAY(SYSDATE) dl FROM dual
D Dl
26.12.2007 16:24:43 31.12.2008 16:24:43
Данная функция очень удобна для определения количества дней в заданном месяце, например:
SELECT SYSDATE d,
T0_CHAR(LAST_DAY(SYSDATE), 'DD') dl FROM dual
D Dl
26.12.2007 16:24:43 31
Функция MONTHS_BETWEEN(dl, d2)
Функция MONTH_BETWEEN возвращает количество месяцев между двумя датами dl и с!2 с учетом знака как dl-d2, возвращаемое число является дробным.
SELECT M0NTHS_BETWEEN('2.09.2006\ '2.05.2006') dl,
предыдущаяследующая