О. А. Ткачев

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


Скачать книгу

(′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, можно выделить определенную часть даты: день, месяц, год.

      Пример