::
Конструкция SQL
Аналог в MySQL:
Приводит значение к указанному типу — короткая запись CAST(value AS type), которая есть только в PostgreSQL.
PostgreSQL 17.5
value::typeПараметры
- value
- Значение для преобразования
- typeтип данных
- Целевой тип данных, например integer, numeric, date или text
Возвращаемое значение
Значение указанного типа; при неудачном преобразовании — ошибка запроса
Примеры
Строка в число и дату, дробь в целое
PostgreSQL 17.5
SELECT '42'::integer + 1 AS number,
'2024-03-08'::date AS DAY,
3.7::integer AS rounded;Дата и текст из столбцов
PostgreSQL 17.5
SELECT member_name,
birthday::date AS birth_date,
member_id::text AS id_text
FROM FamilyMembers;Целочисленное и точное деление
PostgreSQL 17.5
SELECT 10 / 4 AS integer_division,
10::numeric / 4 AS exact_division;Подробности
value::type делает то же, что CAST(value AS type), и подчиняется тем же правилам: например, '3.7'::integer вызывает ошибку, а 3.7::integer округляется до 4.
Оператор :: выполняется раньше арифметики: в 10::numeric / 4 к numeric приводится только 10, и деление становится точным. Чтобы привести целое выражение, возьмите его в скобки: (amount * unit_price)::text.