Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lec4.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
249.86 Кб
Скачать

Примеры использования функций для работы с датами

Пример использования SYSDATE: Получить сегодняшнюю дату:

SELECT SYSDATE

FROM dual;

Результат:

SYSDATE

--------

06.10.03

В дальнейших примерах считать, что сегодняшняя дата: 06 октября 2003 года.

Пример использования арифметических операторов: Узнать, какое число было 10 дней назад и будет через 18 дней:

SELECT SYSDATE-10, SYSDATE+18

FROM dual;

Результат:

SYSDATE-10 SYSDATE+18

-------- --------

26.09.03 24.10.03

Пример использования ADD_MONTHS: Узнать, какое число будет через 9 месяцев:

SELECT ADD_MONTHS(SYSDATE, 9)

FROM dual;

Результат:

ADD_MONT

--------

06.07.04

Пример использования LAST_DAY: Какой день является последним днем текущего месяца и февраля 2005 года:

SELECT LAST_DAY(SYSDATE), LAST_DAY('01-02-2005')

FROM dual;

Результат:

LAST_DAY LAST_DAY

-------- --------

31.10.03 28.02.05

Пример использования MONTHS_BETWEEN: Сколько месяцев между текущим месяцем, 1 январем 2003 года, 6 январем 2004 года и 6 октябрем 2005 года:

SELECT MONTHS_BETWEEN(SYSDATE,'01-01-2003') one,

MONTHS_BETWEEN(SYSDATE,'06-01-2004') two,

MONTHS_BETWEEN(SYSDATE,'06-10-2005') three

FROM dual;

Результат:

ONE TWO THREE

--------- --------- ---------

9,1821658 -3 -24

Пример использования NEXT_DAY: На какой день приходится ближайший понедельник после сегодняшней даты:

SELECT NEXT_DAY(SYSDATE,1) one,

NEXT_DAY(SYSDATE,'mon') two,

NEXT_DAY(SYSDATE,'monday') three

FROM dual;

Результат:

ONE TWO THREE

-------- -------- --------

13.10.03 13.10.03 13.10.03

-- День недели можно задать с помощью любой из моделей формата даты, -- возвращающей день недели (см. далее таблицу моделей форматов). В данном -- примере в первом столбце день недели задается с помощью модели d, во -- втором – DY, в третьем – DAY. Обратите внимание, если Вы задаете день -- недели с помощью модели d, Вы должны знать, с какого дня производится -- нумерация дней недели Вашим сервером. Нумерация может производиться с -- понедельника (русская версия) или с воскресенья (американская версия).

Пример использования ROUND:

SELECT ROUND(to_date('27-09-2003','dd-mm-yyyy'),'year'),

ROUND(to_date('27-09-2003','dd-mm-yyyy'),'month'),

ROUND(to_date('27-09-2003','dd-mm-yyyy'),'day')

FROM dual;

Результат:

ROUND(TO ROUND(TO ROUND(TO

-------- -------- --------

01.01.04 01.10.03 28.09.03

-- Об использовании функции to_date будет рассказано далее в этой же лекции.

Пример использования TRUNC:

SELECT TRUNC(to_date('27-09-2003','dd-mm-yyyy'),'year'),

TRUNC(to_date('27-09-2003','dd-mm-yyyy'),'month'),

TRUNC(to_date('27-09-2003','dd-mm-yyyy'),'day')

FROM dual;

Результат:

TRUNC(TO TRUNC(TO TRUNC(TO

-------- -------- --------

01.01.03 01.09.03 22.09.03

-- Об использовании функции to_date будет рассказано далее в этой же лекции.

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

Функции преобразования преобразуют значения из одного типа данных в другой. В следующей таблице приведены некоторые из функций преобразования:

Функция

Описание

TO_CHAR(число|дата[, fmt])

Преобразует число или дату в символьную строку VARCHAR2 с моделью формата fmt.

TO_NUMBER(char)

Преобразует строку символов char содержащую цифры, в число.

TO_DATE(char[, fmt])

Преобразует строку символов char с датой в значение типа DATE в соответствии с заданной моделью fmt.

Модели формата

Модель формата – это символьный литерал, который описывает формат значения типа DATE или NUMBER, представленного в символьном виде и хранящегося в строке символов. Модель формата в любом случае заключается в апострофы. Вы можете использовать модель формата, чтобы указать, в каком формате Oracle должен возвратить вам значение из базы данных или в каком формате Вы предоставляете значение для помещения его в базу данных. Например, Вы можете пожелать, чтобы дата при выборке выводилась в виде: “13 October of 2003” или “2003, October, 13”. Заметьте, что модель формата не изменяет внутреннего представления значения в базе данных.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]