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

SQL> SELECT SYSDATE, ROUND(SYSDATE, 'YEAR') ROUND, TRUNC(SYSDATE, 'YEAR') TRUNC

  2  FROM dual;

SYSDATE  ROUND    TRUNC

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

01.10.01 01.01.02 01.01.01

Функции преобразования

Функции преобразования принимают в качестве аргумента значения данных одного типа и возвращают эти же значения, преобразованные к другому типу данных.

Функция

Описание

TO_CHAR (число | дата[,fmt’])

Преобразует число или дату в символьную строку VARCHAR2 в соответствии с моделью формата

TO_NUMBER (символ)

Преобразует строку символов в число

TO_DATE (символ[, ‘fmt’])

Преобразует строку символов в дату в соответствии с моделью формата

SQL> SELECT TO_CHAR(SYSDATE, 'DD/MM/YYYY HH24:MI:SS') FROM dual;

TO_CHAR(SYSDATE,'DD

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

01/10/2001 14:44:03

SQL> SELECT TO_CHAR(TO_DATE('01.10.01', 'DD.MM.YY'),

  2  'Year, Month, DD') CURRENT_DATE FROM dual;

CURRENT_DATE

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

Two Thousand One, October  , 01

При преобразовании символьной строки в дату и наоборот используется модель формата (Таблица 1).

Особенности элемента формата RR

Элемент формата RR позволяет менять столетие возвращаемого значения, в зависимости от двух последних цифр текущего года и двух цифр указанного двузначного года.

Две последние цифры текущего года

Две цифры указанного двузначного года

0 – 49

50 - 99

0 – 49

Возвращаемый год относится к текущему столетию

Возвращаемый год относится к столетию перед текущим

50 - 99

Возвращаемый год относится к столетию после текущего

Возвращаемый год относится к текущему столетию

SQL> SELECT TO_CHAR(TO_DATE('10', 'RR'), 'YYYY') FROM dual;

TO_C

----

2010

SQL> SELECT TO_CHAR(TO_DATE('50', 'RR'), 'YYYY') FROM dual;

TO_C

----

1950

Элементы модели формата для числовых значений

При преобразовании символьной строки в число и наоборот используются следующие элементы модели формата:

Элемент

Описание

Пример

Результат

9

Представляет одну цифру

TO_CHAR(1234, '99999')

1234

0

Выводит ведущий ноль

TO_CHAR(1234, '09999')

01234

$

Обозначает плавающий символ доллара

TO_CHAR(1234, '$9999')

$1234

L

Обозначает местную валюту

TO_CHAR(1234, 'L9999')

Р.1234

.

Обозначает позицию десятичной точки

TO_CHAR(1234, '9999.99')

1234.00

,

Обозначает разделитель тысяч

TO_CHAR(1234, '9,999')

1,234

MI

Выводит для отрицательных значений знак минуса справа

TO_CHAR(-1234, '9999MI')

1234-

PR

Заключает отрицательные значения в скобки <>

TO_CHAR(-1234, '9999PR')

<1234>

EEEE

Представление числа с плавающей точкой

TO_CHAR(1234, '9.999EEEE')

1.234E+03

V

Умножает число на 10 указанное количество раз

TO_CHAR(1234, '9999V999')

1234000

Дополнительные элементы формата

В модели формата можно использовать дополнительные элементы, влияющие на формат вывода:

§  Префикс FM подавляет конечные пробелы в названиях месяцев и дней

§  Суффикс TH выводит порядковый номер числа

§  Суффикс SP выводит число словами

SQL> SELECT TO_CHAR(SYSDATE, 'DD "of" MONTH') CURRENT_DATE

  2  FROM dual;

CURRENT_DATE

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

01 of OCTOBER

SQL> SELECT TO_CHAR(SYSDATE, 'FMDD "of" MONTH') CURRENT_DATE

  2  FROM dual;

CURRENT_DATE

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

1 of OCTOBER

SQL> SELECT TO_CHAR(SYSDATE, 'FMDDTH "of" MONTH') CURRENT_DATE

  2  FROM dual;

CURRENT_DATE

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

1ST of OCTOBER

SQL> SELECT TO_CHAR(SYSDATE, 'FMDDTHSP "of" MONTH') CURRENT_DATE

  2  FROM dual;

CURRENT_DATE

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

FIRST of OCTOBER

Литература

1.  Вильям Дж. Пэйдж Использование Oracle8/8i: пер. с англ. – М.: Издательский дом "Вильямс", 1999.

2.  Джеймс Р. Грофф, Пол Н. Вайнберг SQL: полное руководство: пер. с англ. - -К.: Издательская группа BHV, 1998.