Иллюстрированный самоучитель по PostgreSQL

Функции преобразования типа

Суффикс ТН и префикс FM должны непосредственно примыкать к тому значению, которое они модифицируют. Например, чтобы префикс FM применялся к компоненту Day, строка должна иметь вид FMDay (а не FM Day). Аналогично, чтобы день месяца выводился с суффиксом числительного, потребуется форматная строка DDTH (а не DD ТН).

Примеры:

booktown=# SELECT to_char(now(). 'HH:MI PM1) AS the_time;
the_time
05:04 PM
(1 row)

booktown=# SELECT to_char(now(), 'Dy (Day), Mon (Month)')
booktown-# AS abbreviations,
booktown-# to_char('yesterday'::timestamp, 'FMMonth FMDDth')
booktown-# AS yesterday.
booktown-# to_char('yesterday':itimestamp, 'FMDDth FMMonth')
booktown-# AS "yesterday UK";
abbreviations | yesterday j yesterday UK
Sat (Saturday). Sep (September) | August 31st | 31st August
(1 row)

booktown=# SELECT isbn,
booktown-# to_char(publication, 'FMMonth FMDDth, YYYY')
booktown-# AS informal,
booktown-# to_char(publication, 'YYYY-MM-DD') AS formal,
booktown-# to_char(publication. 'Y.YYY "years" A.D.')
booktown-# AS firstj)ublished
booktown-# FROM editions LIMIT 3;
isbn | informal | formal first_pub1ished
039480001X | March 1st. 1957 1957-03-01 1.957 years A.O.
0451160916 | August 1st. 1981 | 1981-08-01 | 1.981 years A.D.
0394800753 | March 1st. 1949 | 1949-03-01 | 1.949 years A.D.
(3 rows)

to date()

Синтаксис:

to_date(s .f)

Функция to_date() получает два аргумента типа text. Аргумент f описывает формат даты, представленной строкой s, и содержит метасимволы из табл. 5.15. Результат возвращается в виде значения типа date.

В PostgreSQL поддерживается много распространенных форматов данных, однако предусмотреть все форматы невозможно. Функция to_date() гарантирует, что практически любой формат даты, описываемый метасимволами из табл. 5.14, может быть преобразован в значение типа date.

Пример:

booktown=# SELECT date('198025thJune')
booktown-f AS non_standard_date_format,
booktown – # toJate (' 198025thJune', ' YYYYDDthMonth')
booktown-# AS correct_interpretation;
non_standard_date_format correct_interpretation
2025-08-27 | 1980-06-25
(1 row)
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.