Гибко отформатировать дату можно с помощью 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) |