Функция Oracle TO_CHAR (PL/SQL)
Функция TO_CHAR — преобразует дату или число в строку.
Синтаксис:
TO_CHAR(исходное_значение, Формат, NLS_LANGUAGE);
--В качестве исходного значения может быть передана как дата DATE так и число NUMBER.
--Последний параметр 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'.
Это пожалуй основные параметры, которые реально могут пригодиться, и пригождались мне.