Оценить:
 Рейтинг: 0

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

Год написания книги
2020
<< 1 ... 10 11 12 13 14 15 16 17 18 ... 24 >>
На страницу:
14 из 24
Настройки чтения
Размер шрифта
Высота строк
Поля

При выводе значений данного типа по умолчанию отображается дата. Для получения текущей даты в формате Date используется функция SYSDATE.

Пример 3.19. Вывод текущей даты в формате по умолчанию

SELECT SYSDATE

FROM Dual;

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

Пример 3.20. Вывод текущей даты с использованием функции TO_CHAR

SELECT TO_CHAR (SYSDATE, ?DD MONTH YYYY, HH24:MI: SS?)

As Date_Time

FROM Dual;

К типам данных, используемых для представления значений даты и времени, также относятся:

– TIMESTAMP – аналогичен типу Date, но время хранится с точностью до миллиардной доли секунды. Для получения текущей даты в этом формате используется функция LOCALTIMESTAMP;

– TIMESTAMP WITH TIME ZONE – хранит вместе со значением даты и времени информацию о часовом поясе. Часовым поясом называется смещение от времени по Гринвичу. Для получения текущей даты в этом формате используется функция SYSTIMESTAMP.

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

SELECT LOCALTIMESTAMP

FROM DUAL;

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

SELECT SYSTIMESTAMP

FROM DUAL;

Функции для работы с данными, имеющими тип даты и времени

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

Таблица 3.4. Функции для работы с данными, имеющими тип даты и времени

Значения, имеющие этот тип, могут участвовать в арифметических операциях с некоторыми ограничениями. Например, разница меду двумя датами равна количеству дней, прошедших между этими датами, но нельзя непосредственно складывать значения, имеющие тип Date.

Прибавление целого значения n к значению типа Date эквивалентно прибавлению n дней к дате. Прибавление значения n/24 к значению типа Date эквивалентно прибавлению n часов к дате.

Если в выражении участвует строка, содержащая значение даты, то ее рекомендуется преобразовать к значению типа Date, используя функцию TO_DATE ().

Рассмотрим примеры, в которых значения, имеющие тип Date, участвуют в арифметических выражениях.

Пример 3.23. Вывод значения текущей даты, увеличенного на 45 дней

SELECT SYSDATE, SYSDATE +45

FROM DUAL;

Пример 3.24. Вывод значения текущей даты и времени, увеличенного на два часа

SELECT TO_CHAR (SYSDATE, ?DD MONTH YYYY, HH24:MI: SS?)

As Date1,

TO_CHAR (SYSDATE +2/24, ?DD MONTH YYYY, HH24:MI: SS?)

As Date2

FROM DUAL;

Пример 3.25. Определить количество дней, прошедших между датой приема на работу и сегодняшним днем

SELECT employee_id, ROUND (SYSDATE – hire_date AS DAYS, -2)

FROM Employees;

Следует обратить внимание на то, что этот запрос возвращает дробное значение, так как значение, возвращаемое функцией SYSDATE, содержит текущее время, которое трактуется как часть суток: например, 12 часов отобразятся в виде значения 0,5.

Пример 3.26. Определить количество недель, прошедших между датой приема на работу и сегодняшним днем

SELECT employee_id, TRUNC ((SYSDATE – hire_date) /7)

AS WEEKS

FROM Employees;

Для определения интервалов между двумя датами в месяцах следует использовать специальную функцию MONTHS_BETWEEN.

Пример 3.27. Вывести данные о сотрудниках и количестве месяцев, прошедших между датой приема на работу и сегодняшним днем

SELECT employee_id, first_name, last_name,

department_id, hire_date,



TRUNC (MONTHS_BETWEEN (SYSDATE, hire_date)) AS MONTHS

– —

FROM Employees;
<< 1 ... 10 11 12 13 14 15 16 17 18 ... 24 >>
На страницу:
14 из 24