Функции преобразования типа
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)