Функция Oracle TO_CHAR (PL/SQL)

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

Синтаксис:
TO_CHAR(исходное_значение, Формат, NLS_LANGUAGE);
--В качестве исходного значения может быть передана как дата <strong>DATE</strong> так и число <strong>NUMBER</strong>.
--Последний параметр NLS_LANGUAGE (как я понимаю для задания кодировки) мне не разу не пригодился.


Примеры:
SQL> select to_char(sysdate,'dd.mm.yyyy') from dual;
 
TO_CHAR(SYSDATE,'DD.MM.YYYY')
-----------------------------
28.02.2017
 
SQL> select to_char(123,'00009') from dual;
 
TO_CHAR(123,'00009')
--------------------
 00123
 
SQL> select to_char(123.1,'00009.90') from dual;
 
TO_CHAR(123.1,'00009.90')
-------------------------
 00123.10


Формат может быть задан комбинациями следующих значений:

  • YYYY — Четырёхзначный год (Например 1980)
  • YY — Двузначный год (Например 84)
  • Q — Квартал (1,2,3,4)
  • MM — Месяц от 01 до 12
  • WW — Номер недели в году (1-53) где 1 неделя начинается в первый день года и продолжается 7 дней
  • W — Номер недели в месяце (1-5) где 1 неделя начинается в первый день месяца и продолжается 7 дней
  • IW — Номер недели в году (1-52 или 1-53) По стандарту ISO
  • D — День недели (1-7)
  • DD — День месяца (1-31)
  • DDD — День в году (1-366)
  • J — День по Юлианскому календарю, номер дня с 1 января 4712 года до Р.Х.
  • H — Час (1-12)
  • HH12 — Час (1-12)
  • HH24 — Час (0-23)
  • MI — Минуты (0-59)
  • SS — Секунды (0-59)

Для преобразования чисел можно задавать числовые маски, например:

'00009.90' — Выводит числа добавляя их нолями слева до 5 знаков, с двумя знаками после запятой.

Или например очень удобная маска для вывода денежных значений: 'FM999990.00'.

Это пожалуй основные параметры, которые реально могут пригодиться, и пригождались мне.

1 комментарий

avatar
Если параметр значения цены более миллиона то вот так маску можно задать:FM99999999990D90
SQL> select to_char(4546970.550,'FM99999999990D90') from dual;
 
TO_CHAR(4546970.550,'FM9999999
------------------------------
4546970.55
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.