Основы программирования в СУБД Oracle. SQL+PL/SQL. - страница 30

Шрифт
Интервал


TRUNC (MONTHS_BETWEEN (SYSDATE, hire_date)) AS MONTHS

– —

FROM Employees;



Пример 3.28. Вывести данные о сотрудниках, которые проработали более 30 лет


SELECT employee_id, first_name, last_name, salary,

department_id, hire_date

FROM Employees

WHERE MONTHS_BETWEEN (SYSDATE, hire_date)> 360;



Функция NEXT_DAY (x, день недели) возвращает следующую ближайшую дату, соответствующую определенному дню недели: например, среда.


Пример 3.29. Использование функции NEXT_DAY


SELECT SYSDATE AS «Сегодня», EXT_DAY (SYSDATE, ′Tuesday′)

AS Tuesday

FROM DUAL;



Функция LAST_DAY (x) возвращает дату, соответствующую последнему дню месяца, которому принадлежит x.


Пример 3.30. Использование функции LAST_DAY


SELECT SYSDATE, LAST_DAY (SYSDATE)

FROM DUAL;



Функция ROUND (x, {параметр}) округляет дату x, если параметр отсутствует, то до начала ближайших суток; если {параметр} = MM/ MON / MONTH – то до начала ближайшего месяца; если параметр = YY / YYYY /YEAR – то до начала ближайшего года.

Пример 3.31. Использование функции ROUND c параметром MM


SELECT ROUND (TO_DATE (′12.05.2018′, ′DD.MM.YYYY′),′MM′)

As ′′ ROUND MONTCH 12.05.2018 ′′,

ROUND (TO_DATE (′20.05.2018′, ′DD.MM.YYYY′),′MM′)

As ′′ ROUND MONTCH 20.05.2018 ′′

FROM DUAL;



Пример 3.32. Использование функции ROUND c параметром YYYY


SELECT ROUND (TO_DATE (′12.05.2018′, ′DD.MM.YYYY′),′YYYY′)

As ′′ ROUND YEAR 12.05.2018 ′′,

ROUND(TO_DATE(′12.07.2018′,′DD.MM.YYYY′),′YYYY′)

As ′′ ROUND YEAR 12.07.2018 ′′

FROM Dual;



Функция TRUNC (x, {параметр}) отличается от ROUND тем, что возвращает начало текущих суток, начало текущего месяца, начало текущего года соответственно.


Пример 3.33. Использование функции TRUNC c параметром MM.


SELECT TRUNC (TO_DATE (′12.05.2018′, ′D.MM.YYYY′),′MM′)

As ′′ TRUNC MONTCH 12.05.2018 ′′,

TRUNC (TO_DATE (′20.05.2018′, ′D.MM.YYYY′),′MM′)

As ′′ TRUNC MONTCH 20.05.2018 ′′

FROM DUAL;



Функция EXTRACT


Функция EXTRACT возвращает значение заданного поля даты-времени из значения, имеющего тип date. Синтаксис:


EXTRACT ({часть даты} FROM {дата})


Таблица 3.5. Часть даты, возвращаемая функцией EXTRACT



Пример 3.34. Вывести данные о сотрудниках, которые были приняты на работу в 1999 году


SELECT employee_id, first_name, last_name, department_id, hire_date

FROM Employees

WHERE EXTRACT (YEAR FROM hire_date) =1999;


Функции конвертирования