Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Встроенные функции ORACLE SQL.doc
Скачиваний:
9
Добавлен:
19.11.2019
Размер:
72.7 Кб
Скачать

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

ADD_MONTHS

Функция ADD_MONTHS возвращает дату с тем же днем месяца, что и в исходной дате, но отнесенную на заданное количество месяцев в будущее или прошлое. Причем функция достаточно «интеллектуальна», чтобы определить, является ли указанный день последним днем месяца, и соответствующим образом скорректировать конечный результат. Например:

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

SELECT N_z

FROM Students_Hobby

WHERE Data_Start < =ADD_MONTHS(TRUNC(SYSDATE), 2);

LAST_DAY

Функция LAST_DAY возвращает последний день любого месяца, указанного в переданной ей дате.

MONTHS_BETWEEN

Функция MONTS_BETWEEN возвращает количество месяцев, разделяющих две даты. Применив функцию TRUNC, можно получить количество целых месяцев. Например:

-- определение количества месяцев до текущей даты, прошедших с момента начала увлечения хобби

SELECT N_z, TRUNC(MONTHS_BETWEEN(Data_Start, SYSDATE), 0)

FROM Students_Hobby;

Функции преобразования данных

TO_CHAR

Функция TO_CHAR преобразует дату, время или число в текст. Ее основная ценность в том, что она позволяет в широких пределах управлять отображением дат, времени и чисел. По умолчанию числа показываются с тем количеством десятичных знаков, которые содержат. Что же касается дат, то они отображаются в формате, который мало кто использует в повседневной жизни, и по умолчанию не содержат времени. Функция TO_CHAR позволяет исправить эти ситуации. Синтаксис функции имеет следующий вид:

TO_CHAR(входное_значение, код_формата)

Код формата состоит из одного или нескольких элементов, определяющих, как будут представлены дата и время, либо число. В таблицах 2 и 3 представлен неполный перечень элементов формата, которые могут быть использованы для форматированного вывода даты, времени и чисел. Например:

-- отображение даты и времени рождения студентов

-- в формате «дд.мм.гггг чч:мм:сс»

SELECT S_name,F_name, TO_CHAR(Date_B, ‘dd.mm.yyyy hh24:mi:ss’

FROM Students;

Таблица 1. Элементы формата даты и времени, используемого в функции TO_CHAR

Элемент

Описание

-

/

,

.

;

:

‘любой текст’

Воспроизведение соответствующих знаков препинания и текста в кавычках

D

День недели (1-7)

DAY

Название дня недели, дополненное пробелами до девяти символов

DD

День месяца (1-31)

DDD

День года (1-366)

DY

Сокращенное название дня недели

MM

Месяц года (1-12)

MON

Сокращенное название месяца года

MONTH

Название месяца года

RM

Римский номер месяца

Q

Квартал года

YY

Год (две цифры)

YYYY

Год (четыре цифры)

YEAR

Год в буквенном написании

WW

Неделя года (1-53), в котором первая неделя начинается в первый день года и продолжается до седьмого дня года

W

Неделя месяца (1-5), в котором первая неделя начинается в первый день месяца и заканчивается в седьмой день месяца

HH

Час дня (1-12)

HH24

Час дня (0-23)

MI

Минуты (0-59)

SS

Секунды (0-59)

AM

A.M.

PM

P.M.

Обозначение времени до или после полудня (с точками или без точек)

Таблица 2. Элементы формата чисел, используемого в функции TO_CHAR

Элемент

Описание

$

Отображение знака доллара перед значением

L

Отображение знака местной денежной единицы в указанной позиции

, (запятая)

Помещает запятую в указанной позиции

. (точка)

Помещает точку в указанной позиции

RN или rn

Отображение числа римскими цифрами верхнего или нижнего регистра (только для целых чисел от 1 до 3999)

TO_DATE

Функция TO_DATE преобразует текстовое представление даты (и/или времени) в действительные значения даты/времени. Функция имеет синтаксис аналогичный синтаксису функции TO_CHAR и используется, например, при вводе данных в таблицы при неизвестном формате, принятом в той или иной базе данных по умолчанию.