Обозначение числового формата оракула

Обновлено: 20.11.2024

В базе данных Oracle функция TO_CHAR(число) преобразует число в значение VARCHAR2 в формате, заданном аргументом формата.

Синтаксис

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

  • n может иметь тип NUMBER , BINARY_FLOAT или BINARY_DOUBLE .
  • fmt – это необязательная модель формата, которая указывает, как должен быть отформатирован результат. Просмотрите допустимые элементы числового формата, которые можно использовать для построения модели формата.
  • 'nlsparam' — необязательный аргумент, указывающий, как возвращаются различные символы. Вы можете использовать его для указания десятичного символа и разделителя групп, символа местной валюты и символа международной валюты. Если этот аргумент опущен, используются значения по умолчанию для текущего сеанса.

Пример

Вот пример, демонстрирующий работу функции:

Первый аргумент — это фактическое число, которое мы форматируем, а второй аргумент — модель формата. Модель формата определяет способ форматирования числа.

В этом случае наша модель форматирования форматирует число с разделителем групп в соответствующей позиции. Каждая числовая цифра представлена ​​9 , а разделитель групп представлен G .

Вот что произойдет, если мы немного изменим модель формата:

В данном случае мы начали модель формата с символа 0. Это возвращает начальный ноль везде, где это применимо. Символ 9 не возвращает ведущие нули.

На самом деле, мы могли бы заменить все 9 на 0, если бы захотели. Вот сравнение, которое показывает, как результаты могут значительно различаться в зависимости от того, какой элемент формата вы используете:

Символы валют

Для возврата символа местной валюты можно использовать элемент формата L.

В этом примере используется модель формата, которая выводит результат с использованием символа местной валюты (представленного L ), разделителя групп (представленного G ), десятичного символа (представленного D ) и, конечно же, каждой числовой цифры ( представлено 9 ).

Символ местной валюты определяется текущим значением параметра NLS_CURRENCY. Это правда, что мы могли бы использовать знак доллара ($) для символа валюты, но это предполагает, что валюта выражена в долларах. В мире существует множество других возможных валют, и элемент формата L может динамически возвращать символ местной валюты для сеанса пользователя.

Полный список элементов формата чисел в Oracle содержит список элементов формата, которые можно использовать для форматирования чисел с помощью этой функции.

Формат по умолчанию

Если вы опустите аргумент fmt, число будет преобразовано в значение VARCHAR2, длина которого будет ровно такой, чтобы вместить его значащие цифры.

Вот пример преобразования числа без указания формата:

Аргумент nlsparam

Аргумент 'nlsparam' можно использовать для указания десятичного символа и разделителя групп, символа местной валюты и символа международной валюты.

Он принимает следующую форму:

Вот это снова, но на этот раз я заменяю L на C в модели формата:

C возвращает символ валюты ISO, в данном случае это EUR .

Как подавить заполнение

Возможно, вы заметили, что в некоторых примерах слева от результатов применены отступы. Такие отступы можно удалить с помощью модификатора формата fm.

Нулевые аргументы

Передача нулевого значения приводит к нулевому значению:

По умолчанию SQLcl и SQL*Plus возвращают пустое место всякий раз, когда в результате выполнения инструкции SQL SELECT возникает значение NULL.

Однако вы можете использовать SET NULL, чтобы указать другую возвращаемую строку. Здесь я указал, что должна быть возвращена строка null.

TO_CHAR (число) преобразует n в значение типа данных VARCHAR2, используя необязательный числовой формат fmt. Значение n может иметь тип NUMBER, BINARY_FLOAT или BINARY_DOUBLE. Если вы опустите fmt , то n преобразуется в значение VARCHAR2 ровно столько, сколько нужно для хранения его значащих цифр.

Если n отрицательное, знак применяется после применения формата. Таким образом, TO_CHAR(-1, '$9') возвращает -$1, а не $-1.

Информацию о числовых форматах см. в разделе "Модели формата".

Аргумент 'nlsparam' указывает следующие символы, возвращаемые элементами числового формата:

Символ местной валюты

Обозначение международной валюты

Этот аргумент может иметь следующую форму:

Символы d и g представляют собой десятичный знак и разделитель групп соответственно. Они должны быть разными однобайтовыми символами. Внутри строки в кавычках вы должны использовать две одинарные кавычки вокруг значений параметров. Для символа валюты доступно десять символов.

Если вы опустите 'nlsparam' или любой из параметров, эта функция использует значения параметров по умолчанию для вашего сеанса.

Приложение C к Oracle Database Globalization Support Guide для правил деривации сортировки, которые определяют сортировку, назначаемую символьному значению, возвращаемому этой функцией

Следующий оператор использует неявное преобразование для объединения строки и числа в число:

Сравните этот пример с первым примером для TO_CHAR (символ).

В следующем примере выходные данные дополняются пробелами слева от символа валюты. В необязательном числовом формате fmt L обозначает символ местной валюты, а MI обозначает знак минус в конце. См. Таблицу 2-15 для получения полного списка элементов числового формата. В примере показаны выходные данные сеанса, в котором для параметра сеанса NLS_TERRITORY задано значение AMERICA .

В следующем примере NLS_CURRENCY указывает строку, которая будет использоваться в качестве символа местной валюты для элемента формата числа L. NLS_NUMERIC_CHARACTERS указывает запятую в качестве символа, используемого в качестве десятичного разделителя для элемента формата числа D, и точку в качестве символа, который следует использовать в качестве разделителя групп для элемента формата числа G. Эти символы ожидаются во многих странах, например в Германии.

В следующем примере NLS_ISO_CURRENCY указывает базе данных использовать международный символ валюты для территории ПОЛЬШИ для элемента формата числа C:

TO_CHAR (число) Функция: Пример

Следующие операторы создают таблицу с именем empl_temp и заполняют ее сведениями о сотрудниках:

Следующий оператор преобразует числовые данные в набор символов базы данных:

Просмотрите и запустите соответствующий пример в Oracle Live SQL в разделе Использование функции TO_CHAR

В этом руководстве объясняется, как преобразовать число в строку в Oracle с помощью функции TO_CHAR(число). Ниже приведены примеры Oracle TO_CHAR(число) с подробным описанием синтаксиса и формата.

Синтаксис

Спецификаторы формата

< /tr> < /tbody>
Модель формата Описание
CC, SCC Век (S ставит перед датами до н.э. знак минус)
YYYY, SYYYY Год (S ставит перед датами до н.э. знак минус)
ГГГГ Год по стандарту ISO
ГГГ, ГГ, Г Последний три, две или одна цифра года
IYY, IY, I Последние три, две или одна цифра года по ISO
Y,YYY (четыре Y с запятой) поставить запятую в году (1995)
YEAR , SYEAR Год прописан (S ставит перед датами до н.э. знак минус)
RR Последние две цифры года в другое столетие (допускает 2000 год)
BC, AD индикатор BC или AD
BC, AD Индикаторы BC или AD с периодами
Q Числовой квартал года (1-4 с янв- Mar=1)
MM 2 число месяца (Jan = 01)
RM римское число месяца
МЕСЯЦ Название месяца прописано (прописными буквами - месяц в верхнем регистре)
MON сокращенное название месяца (верхний регистр - месяц в верхнем регистре)
WW Неделя года (1-53)
IW Неделя года (1-52, 1-53) на основе стандарта ISO
W Неделя месяца (1-5)
DDD день года (1-366) (Не забыть о високосных годах)
ДД день месяца (1-31)
D< /td> день недели (1-7)
ДЕНЬ Название дня (в верхнем регистре, день в верхнем регистре)
DY Сокращенное название дня
J Юлианский день (Число дней с 1 января 4712 г. до н.э.)
AM,PM Указатель меридиана
AM , ПМ Мер индикатор idian с точками.
HH, HH12 Час дня (0-12)
HH24 Использовать 24-часовой формат для часов (1-24)
MI Минуты (0-59)
SS Секунда (0-60)
SSSSSS (пять S's) секунды после полуночи. (0-86399)
Нет Дата должна быть в формате «ДД-МЕСЯЦ-ГГ»;

Oracle TO_CHAR(число) Примеры

<р>1. В следующем примере показано преобразование числа в ведущие нули, если оно содержит менее 10 цифр.

Вывод

<р>2. Пример со знаком доллара.

Вывод

<р>3. Пример преобразования в десятичный символ.

Вывод

<р>4. Пример преобразования в валюту ISO.

Вывод

<р>5. Пример преобразования в запятую.

Вывод

<р>6. Преобразование в римский пример.

Вывод

См. также:

Пожалуйста, поделитесь Поделитесь этим контентом

Виниш Капур

Вам также может понравиться

База данных Oracle: преобразование дат до 2000 года для 50-99 лет и до 2000 года и позже для 00-49 годов

Как вставить данные в таблицу с помощью Toad?

Как скомпилировать недопустимое тело пакета в Oracle 11g

Как создать таблицу в Oracle SQL Developer?

Как рассчитать среднее значение в Oracle?

Как изменить отрицательное значение на положительное в Oracle?

В этом руководстве по Oracle объясняется, как использовать функцию Oracle/PLSQL TO_CHAR с синтаксисом и примерами.

Описание

Функция Oracle/PLSQL TO_CHAR преобразует число или дату в строку.

Синтаксис

Синтаксис функции TO_CHAR в Oracle/PLSQL:

Параметры или аргументы

значение Число или дата, которые будут преобразованы в строку. format_mask Необязательный. Это формат, который будет использоваться для преобразования value в строку. nls_language Необязательный. Это язык nls, используемый для преобразования value в строку.

Возврат

Функция TO_CHAR возвращает строковое значение.

Применимо к

Функция TO_CHAR может использоваться в следующих версиях Oracle/PLSQL:

  • Oracle 12c, Oracle 11g, Oracle 10g, Oracle 9i, Oracle 8i

Пример

Давайте рассмотрим некоторые примеры функций Oracle TO_CHAR и узнаем, как использовать функцию TO_CHAR в Oracle/PLSQL.

Примеры с числами

Ниже приведены примеры чисел для функции TO_CHAR.

Примеры с датами

Ниже приведен список допустимых параметров, когда функция TO_CHAR используется для преобразования даты в строку. Эти параметры можно использовать во многих комбинациях.

Параметр Объяснение
YEAR Год по буквам out
ГГГГ 4-значный год
ГГГ
ГГ
Y
Последние 3, 2 или 1 цифра года.
IYY
IY
I
Последние 3, 2 или 1 цифра года по стандарту ISO.
IYYY 4-значный год по стандарту ISO стандарт
Q Квартал года (1, 2, 3, 4; JAN-MAR = 1).
MM Месяц (01-12; JAN = 01).
MON Сокращенное наименование месяц.
МЕСЯЦ Название месяца, дополненное пробелами до 9 символов.
RM Месяц римскими цифрами (I-XII; JAN = I).
WW Неделя года (1- 53), где неделя 1 начинается в первый день года и продолжается до седьмого дня года.
W Неделя месяца (1 -5) где неделя 1 начинается в первый день месяца и заканчивается седьмым.
IW Неделя года (1-52 или 1-53) на основе стандарта ISO.
D День недели (1-7).
ДЕНЬ Имя дня.
ДД День месяца (1-31).
ДДД< /td> День года (1-366).
DY Сокращенное название дня.
J Юлианский день; количество дней с 1 января 4712 г. до н.э.
ЧЧ Час дня (1-12).
HH12 Час дня (1-12).
HH24 Час дня (0 -23).
MI минуты (0-59).
SS Секунды (0-59).
SSSSS Секунды после полуночи (0-86399).
FF Дробные секунды.

Ниже приведены примеры дат для функции TO_CHAR.

Вы заметите, что в некоторых примерах функций TO_CHAR параметр format_mask начинается с "FM". Это означает, что нули и пробелы подавляются. Это можно увидеть в примерах ниже.

Нули удалены, поэтому компонент дня отображается как "9", а не как "09".

Часто задаваемые вопросы

Вопрос. Почему дни недели не сортируются по порядку?

Ответ: в приведенном выше SQL маска формата fmDay, используемая в функции TO_CHAR, будет возвращать название дня, а не числовое значение дня.

Чтобы отсортировать дни недели по порядку, необходимо вернуть числовое значение дня с помощью маски формата fmD следующим образом:

Читайте также: