Форматирование даты

ФОРМАТИРОВАНИЕ ДАТЫ

Гибко отформатировать дату можно с помощью TO_CHAR().

Давайте попробуем вывести текущий месяц с помощью вышеупомянутой функции в произвольном формате:

select 'Current month is ' || to_char(current_timestamp, 'Month')

Результат:  Current month is March.

Теперь попробуем вывести текущее время:

select 'Time is ' || to_char(current_timestamp, 'HH24:MI')

Результат: Time is 17:14.

Стоит понимать, что в результате запроса отображается не ваше время, а время на сервере. Так как часовые пояса везде разные, время может отличаться. Наш сервер расположен не в России, поэтому для вывода правильного времени (московского) его нужно скорректировать, а именно прибавить 3 часа (подробнее тут). Давайте сделаем это с помощью знаний из первого шага данного урока:

select 'Time is ' || to_char((current_timestamp + interval '3 hour'), 'HH24:MI')

Результат: Time is 20:14.

Представлять время можно и иначе. Ниже приведен список кодов, которые можно использовать для преобразования даты/времени в нужный формат: 

Код Описание
HH час дня (01–12)
HH12 час дня (01–12)
HH24 час дня (00–23)
MI минута (00–59)
SS секунда (00–59)
MS миллисекунда (000–999)
US микросекунда (000000–999999)
FF1 десятая доля секунды (0–9)
FF2 сотая доля секунды (00–99)
FF3 миллисекунда (000–999)
FF4 десятитысячная доля секунды (0000–9999)
FF5 стотысячная доля секунды (00000–99999)
FF6 микросекунда (000000–999999)
SSSS, SSSSS секунды после полуночи (0–86399)
AM, am, PM или pm обозначение времени до/после полудня (без точек)
A.M., a.m., P.M. или p.m. обозначение времени до/после полудня (с точками)
Y,YYY год (4 или более цифр) с разделителем
YYYY год (4 или более цифр)
YYY последние 3 цифры года
YY последние 2 цифры года
Y последняя цифра года
IYYY недельный год по ISO 8601 (4 или более цифр)
IYY последние 3 цифры недельного года по ISO 8601
IY последние 2 цифры недельного года по ISO 8601
I последняя цифра недельного года по ISO 8601
BC, bc, AD или ad обозначение эры (без точек)
B.C., b.c., A.D. или a.d. обозначение эры (с точками)
MONTH полное название месяца в верхнем регистре (дополненное пробелами до 9 символов)
Month полное название месяца с большой буквы (дополненное пробелами до 9 символов)
month полное название месяца в нижнем регистре (дополненное пробелами до 9 символов)
MON сокращенное название месяца в верхнем регистре (3 буквы в английском; в других языках длина может меняться)
Mon сокращенное название месяца с большой буквы (3 буквы в английском; в других языках длина может меняться)
mon сокращенное название месяца в нижнем регистре (3 буквы в английском; в других языках длина может меняться)
MM номер месяца (01–12)
DAY полное название дня недели в верхнем регистре (дополненное пробелами до 9 символов)
Day полное название дня недели с большой буквы (дополненное пробелами до 9 символов)
day полное название дня недели в нижнем регистре (дополненное пробелами до 9 символов)
DY сокращенное название дня недели в верхнем регистре (3 буквы в английском; в других языках может меняться)
Dy сокращенное название дня недели с большой буквы (3 буквы в английском; в других языках длина может меняться)
dy сокращенное название дня недели в нижнем регистре (3 буквы в английском; в других языках длина может меняться)
DDD номер дня в году (001–366)
IDDD номер дня в году по ISO 8601 (001–371; первый день года — понедельник первой недели по ISO)
DD день месяца (01–31)
D номер дня недели, считая с воскресенья (1) до субботы (7)
ID номер дня недели по ISO 8601, считая с понедельника (1) до воскресенья (7)
W неделя месяца (1–5) (первая неделя начинается в первый день месяца)
WW номер недели в году (1–53) (первая неделя начинается в первый день года)
IW номер недели в году по ISO 8601 (01–53; первый четверг года относится к неделе 1)
CC век (2 цифры) (двадцать первый век начался 2001-01-01)
J юлианская дата (целое число дней от 24 ноября 4714 г. до н. э. 00:00 по местному времени; см. Раздел B.7)
Q квартал
RM номер месяца римскими цифрами в верхнем регистре (I–XII; I=январь)
rm номер месяца римскими цифрами в нижнем регистре (i–xii; i=январь)
TZ сокращенное название часового пояса в верхнем регистре (поддерживается только в to_char)
tz сокращенное название часового пояса в нижнем регистре (поддерживается только в to_char)
TZH часы часового пояса
TZM минуты часового пояса
OF смещение часового пояса от UTC (поддерживается только в to_char)