Referencia de funciones

::

Construcción SQL
Equivalente en MySQL:

Convierte un valor al tipo indicado: una forma abreviada de CAST(value AS type) que solo existe en PostgreSQL.

PostgreSQL 17.9
value::type
value
Valor que se convierte
type
Tipo de dato de destino, por ejemplo integer, numeric, date o text
Tipo de datos

Valor devuelto

Valor del tipo indicado; si la conversión falla, la consulta termina con un error

Ejemplos

Cadenas a número y a fecha, un número decimal a entero

PostgreSQL 17.9
SELECT '42'::integer + 1 AS number,
	'2024-03-08'::date AS DAY,
	3.7::integer AS rounded;
numberdayrounded
432024-03-084

Fecha y texto a partir de columnas

PostgreSQL 17.9
SELECT member_name,
	birthday::date AS birth_date,
	member_id::text AS id_text
FROM FamilyMembers;
member_namebirth_dateid_text
Headley Quincey1960-05-131
Flavia Quincey1963-02-162
Andie Quincey1983-06-053
Lela Quincey1985-06-074
Annie Quincey1988-04-105
Ernest Forrest1961-09-116
Constance Forrest1968-09-067
Wednesday Addams2005-01-138

División entera y exacta

PostgreSQL 17.9
SELECT 10 / 4 AS integer_division,
	10::numeric / 4 AS exact_division;
integer_divisionexact_division
22.5000000000000000

Detalles

value::type hace lo mismo que CAST(value AS type) y sigue las mismas reglas: por ejemplo, '3.7'::integer provoca un error, mientras que 3.7::integer se redondea a 4.

El operador :: se aplica antes que la aritmética: en 10::numeric / 4 solo el 10 se convierte a numeric, y la división pasa a ser exacta. Para convertir una expresión entera, ponla entre paréntesis: (amount * unit_price)::text.

Véase también

Dónde aprenderlo