Функции преобразования типа
Хотя PostgreSQL позволяет выполнять явные преобразования между основными типами данных, некоторые преобразования удобнее выполнять при помощи функций. В табл. 5.13 перечислены основные функции преобразования типов PostgreSQL, а ниже приводятся их подробные описания.
Таблица 5.13. Функции преобразования типов.
Функция | Описание |
---|---|
bitfromint4(n) | Преобразует число в битовую последовательность |
bittoint4(b) | Преобразует битовую последовательность в десятичное представление |
to_cnar(n .f) | Преобразует число в строку в формате f |
to_char(t .f) | Преобразует значение типа timestamp в строку в формате f |
to_date(s .f) | Преобразует строку в формате даты f в значение типа date |
to_number(s .f) | Преобразует строку в формате даты f в значение типа numeric |
to timestamp(s .f) | Преобразует строку в формате даты f в значение типа timestamp |
timestamp(d) | Преобразует значение типа date к типу timestamp |
timestamp(d .t) | Преобразует два значения типов date и time к типу timestamp |
bitfromint4()
Синтаксис:
bitfromint4(n)
Функция bitfromint4() получает один аргумент n типа integer и возвращает его представление в виде битовой последовательности. Поскольку явного преобразования между двоичным и целочисленным типом не существует, преобразование десятичных данных в двоичную систему счисления должно Осуществляться специальной функцией.
Возвращаемое значение относится к типу bit, а его длина не превышает 32 бита. Поскольку тип integer является знаковым, допустимые значения аргумента лежат в интервале от -2 147 483 648 до 2 147 483 647.
Пример:
booKtown=# SELECT bitfronrint4(16385); bitfromint4 00000000000000000100000000000001 (1 row)
bittoint4()
Синтаксис:
bittoint4(b)
Функция bittoint4() фактически является обратной по отношению к bitfromint4() – она получает один аргумент b тина bit п возвращает его десятичное числовое значение в виде тина integer.
Соответственно аргумент функции bitfrwint4() содержит до 32 двоичных цифр, а возвращаемое значение лежит в интервале от -2 147 483 648 до 2 147 483 647.
Пример:
booktown=# SELECT bittoint4(B'101010'). booktown-# Mttoint4(bitfromint4(99)) AS inverse_example: bittoint4 inverse_example 42 | 99 (1 row)