Ограничение количества выбираемых строк, страница 3

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

JAMES      CLERK               900

SQL> SELECT sal, comm, MOD(sal, comm) FROM emp WHERE comm IS NOT NULL;

       SAL       COMM MOD(SAL,COMM)

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

      1600        300           100

      1250        500           250

      1250       1400          1250

      1500          0          1500

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

Даты в Oracle хранятся во внутреннем цифровом формате: век, год, месяц, число, часы, минуты, секунды. По умолчанию дата выводится в формате число – месяц – год. Даты можно хранить с 1 января 1472 года до н.э. по 31 декабря 4172 года н.э.

Для вывода текущей даты и времени используется функция SYSDATE. Эту функцию можно использовать так же, как и имя столбца при выводе данных из любой таблицы или из фиктивной таблицы DUAL.

SQL> SELECT SYSDATE FROM emp WHERE comm IS NOT NULL;

SYSDATE

---------

30-SEP-01

30-SEP-01

30-SEP-01

30-SEP-01

SQL> SELECT SYSDATE FROM dual;

SYSDATE

---------

30-SEP-01

Вы можете выполнять арифметические операции, такие как сложение и вычитание, с датами:

Операция

Результат

Описание

дата + число

дата

Прибавление к дате заданного количества дней

дата - число

дата

Вычитание из даты заданного количества дней

дата – дата

количество дней

Вычитание одной даты из другой

дата + число/24

дата

Прибавление к дате заданного количества часов


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

Функция

Описание

MONTHS_BETWEEN (дата1, дата2)

Вычисляет количество месяцев между двумя датами. Дробная часть результата представляет собой долю месяца. Результат может быть отрицательным, в этом случае дата1 более ранняя, чем дата2

ADD_MONTHS (дата, n)

К дате добавляется заданное число месяцев. Число n может быть отрицательным, но всегда должно быть целым

NEXT_DAY (дата, символ)

Определяет дату ближайшего дня недели, заданного символом, после указанной даты. Символ может быть задан порядковым номером или названием дня недели

LAST_DAY (дата)

Определяет дату последнего дня месяца, содержащего указанную дату

ROUND (дата [, ‘fmt’])

Округляет до целых суток (до даты на момент полуночи), в соответствии с моделью формата fmt’. Если fmt’ = YEAR, определяет первый день года

TRUNC (дата [, fmt’])

Отсекает часть даты, обозначающую время, в соответствии с моделью формата fmt’. Если fmt’ = YEAR, определяет первый день года

SQL> SELECT ename, hiredate, SYSDATE,

  2  MONTHS_BETWEEN(SYSDATE, hiredate) MONTHS_BETWEEN

  3  FROM emp WHERE job='CLERK';

ENAME      HIREDATE  SYSDATE   MONTHS_BETWEEN

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

SMITH      17-DEC-80 01-OCT-01      249.48439

ADAMS      12-JAN-83 01-OCT-01     224.645681

JAMES      03-DEC-81 01-OCT-01     237.936003

MILLER     23-JAN-82 01-OCT-01     236.290842

Модель формата должна быть заключена в апострофы. Символы верхнего и нижнего регистров различаются, т.е., если Вы задаете модель формата в верхнем регистре, то и название месяца или дня при выводе будет отображено в верхнем регистре.

Для функций ROUND и TRUNC разрешены следующие модели формата:

Таблица 1 Модели формата, используемые в функциях ROUND, TRUNC, TO_CHAR, TO_DATE

Правила округления

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

Описание

Столетие
по 31 декабря 50-го года – округляется до первого дня столетия, содержащего указанную дату;
с 1 января 51-го года – до первого дня следующего столетия

СС

SCC

Даты до н.э. получают префикс “-”

Год
по 30 июня округляется до первого дня года, содержащего указанную дату;
с 1 июля – до первого дня следующего года

YYYY

SYYYY

Даты до н.э. получают префикс “-”

YYY, YY, Y

Последние 3, 2 или 1 цифра года

YEAR

Год словами

SYEAR

Год словами. Даты до н.э. получают префикс “-”

RR

Используется вместо YY. Позволяет менять столетие возвращаемого значения

Квартал
по 15 число второго месяца квартала округляется до первого дня квартала, содержащего указанную дату;
с 16 числа – до первого дня следующего квартала

Q

Месяц
по 15 число месяца округляется до первого дня месяца, содержащего указанную дату;
с 16 числа – до первого дня следующего месяца

MONTH

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

MON

Трехбуквенное название месяца

MM

Месяц в виде двузначного числа

RM

Номер месяца римскими цифрами

Неделя
до 12 часов четвертого дня недели округляется до первого дня недели, содержащей указанную дату;
с 12 часов – до первого дня следующей недели

WW, W

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

DAY

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

DY

Трехбуквенное название дня недели

День
до 12 часов дня округляется до начала (полуночи) дня, содержащего указанную дату;
с 12 часов – до начала следующего дня

DDD, DD, D

День года, месяца или недели

J

Дата по Юлианскому календарю (количество дней после 31 декабря 4713 г. до н.э.)

Часы
до 30 минут округляется до начала часа, содержащего указанную дату;
с 30 минут – до начала следующего часа

HH,
HH12,
HH24

Время суток, час в 12-часовом диапазоне или час в 24-часовом диапазоне
Элемент AM (A.M.) или PM (P.M.) используется для отображения индикатора «до полуночи / после полуночи»

Минуты
до 30 секунд округляется до начала минуты, содержащей указанную дату;
с 30 секунд – до начала следующей минуты

MI

Минуты (0–59)

Секунды (в функциях ROUND, TRUNC не используется)

SS

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

SSSSS

Количество секунд после полуночи (0-86399)