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

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

Хотя 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)
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.