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

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

to_number()

Синтаксис:

to_number(s .f)

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

Примеры:

booktown=# SELECT to_number('$2.900.00', 'L9G999D99')
booktown-# AS monetary: monetary
2900.00 (1 row)
booktown=# SELECT tojiumber('123.456.789.00'. '999G999G999D99')
booktown-# AS formatted,
booktown-# to_numberС123456789'. '999999999')
booktown-# AS just_digits,
booktown-# to_number('00123456789'. '00999999999')
booktown-# AS leading_zeroes;
formatted | just_d1gits | leading_zeroes
123456789.00 123456789 | 123456789
(1 row)

to_timestamp()

Синтаксис:

to_timestamp(s .f)

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

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

Пример:

booktown=# SELECT timestamp('197825thJuly01:12am')
booktown-# AS non_standard_timestamp,
booktown-l to_fimestamp('197825July01:12am',
booktown(# 'YYYYDDFMMonthHH12:MIam')
booktown-# AS correcMnterpretation;
non_standard_timestamp | correctjnterpretation
2025-06-27 01:12:00-07 1978-07-25 01:12:00-07
(1 row)

Примечание
Модификатор FM имеет важное значение для правильной интерпретации данных, следующих за названием месяца или дня недели, поскольку эти названия часто дополняются пробелами до 9 символов. Помните, что модификатор FM не является глобальным – он должен предшествовать каждом/элементу, к которому он применяется
.

timestamp()

Синтаксис:

timestamp(d) timestamp(d, t)

Функция timestamp() получает либо один аргумент типа date, либо два аргумента типов date и time соответственно. Переданные аргументы преобразуются в значение типа tlmestamp и возвращаются функцией. При передаче одного аргумента предполагается, что время соответствует полуночи заданной даты.

Пример:

booktown=# SELECT timestamp(date('now'))
AS today_at_midnight,
booktown-# timestamp(dateCnow'),
booktownd time('now')) AS right_now;
today_at_m1dnight | rightjiow
2001-09-01 00:00:00-07 | 2001-09-01 18:04:16-07
(1 row)
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.