Базы данных

Функции работы с датой и временем

В данном разделе речь пойдет о функциях работы с датой/временем и функциями предобразования типов для даты. Для хранения даты и времени в 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,

предыдущаяследующая