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

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

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

TO_DATE (?09/01/18?, ?MM/DD/RR?) As ?? 09/01/18??,

TO_DATE (?01092018?, ?DDMMYYYY?) As ?? 01092018??

FROM DUAL

Замечание: срока преобразуется в дату, а дата выводится в установленном формате даты. Для ввода и вывода значения времени используется маска HH24:MI: SS, где:

– HH24 – двузначное значение часа в 24-часовом формате;

– MI – двузначное значение минут;

– SS – двузначное значение секунд.

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

Пример 3.38. Ввод и вывод значения даты, содержащей время

SELECT TO_CHAR (TO_DATE (?01-SEP-2018, 14:45:51?,

?DD-MON-YYYY HH24:MI: SS?),?DD MONTH YYYY, HH24:MI: SS?)

As Date_Time

FROM DUAL

Использование формата RR

Этот формат связан с проблемой 2000 года. Определяет год, если в дате заданы две последние цифры года. Если две последние цифры лежат в диапазоне от 0 до 49, то год принадлежит текущему столетию. Если две последние цифры лежат в диапазоне от 50 до 99, то год принадлежит предыдущему столетию.

TO_DATE (?04-JUL-18?, ?DD-MON-RR?) ? 04/JUL/2018

TO_DATE (?04-JUL-75?, ?DD-MON-RR?) ? 04/JUL/1975

Более полная информация о правилах использования формата RR приведена в таблице 3.8.

Таблица. 3.8. Правила преобразования года в формате RR

При использовании формата YY первые две цифры всегда соответствуют текущему столетию. Совет: при работе с датами всегда указывайте четыре цифры года.

Пример 3.39. Использование формата RR при вводе двузначного значения года

SELECT TO_CHAR (TO_DATE

(?04-07-18?, ?DD-MM-RR?),?DD-MON-YYYY?) As DAT1,

TO_CHAR (TO_DATE (?04-07-75?, ?DD-MM-RR?),?DD-MON-YYYY?)

As DAT2

FROM DUAL;

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

SELECT TO_CHAR (TO_DATE (?04-07-18?, ?DD-MM-YY?),

?DD-MON-YYYY?) As DAT1,

TO_CHAR (TO_DATE (?04-07-75?, ?DD-MM-YY?),

?DD-MON-YYYY?) As DAT2

FROM DUAL;

Преобразование даты в строку символов

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

TO_CHAR (х, {маска преобразования})

где: x – значение, имеющее тип Date, а строка {маска преобразования}) – маска, которая определяет, как нужно отобразить значение x; может содержать те же элементы, которые были определены для функции TO_DATE.

Пример 3.41. Использование функции TO_CHAR для преобразования значения, имеющего тип Date, в строку символов

SELECT TO_CHAR (SYSDATE, ? DD/MM/YYYY?) AS RESULT1,

TO_CHAR (SYSDATE, ? DD MON, YYYY?) AS RESULT2,

TO_CHAR (SYSDATE, ? DD DAY MONTH, YYYY?) AS RESULT3,

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

AS RESULT4

FROM DUAL;

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

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

SELECT employee_id, first_name, last_name, hire_date, salary

FROM Employees

WHERE TO_CHAR (hire_date, ?YYYY?) = ?2000?;

Работа с неопределенными значениями

Если при вводе новой строки в таблицу столбцу не будет присвоено значение, то этот столбец будет иметь значение NULL – не определено. Это может происходить по двум основным причинам. Первая причина: в момент ввода строки значение столбца неизвестно, в этом случае значение будет присвоено позже. Вторая причина: значение не может быть присвоено исходя из правил предметной области. Для рассматриваемой базы данных вторую причину можно пояснить на примере столбца commission_pct таблицы Employees. Некоторым сотрудникам полагаются комиссионные, столбец commission_pct содержит значение комиссионных. Зарплата таких сотрудников рассчитывается по формуле: Salary * (1 + commission_pct). У сотрудников, которым комиссионные не полагаются, значение столбца commission_pct не может быть определено.
<< 1 ... 13 14 15 16 17 18 19 20 21 ... 24 >>
На страницу:
17 из 24