Función CAST en PostgreSQL

La función CAST en PostgreSQL te permite convertir un tipo de dato en otro, por ejemplo, pensemos que tienes almacenado el número 55 en un campo de texto y que quieres realizar una operación aritmética con ese número. Lo más lógico es convertir el campo que contiene el número 55 en formato numérico y después operar con él. Otro caso común son las fechas, por ejemplo, puedes tener un campo de fecha almacenado como texto en una tabla y querer relacionarlo con otra tabla que la fecha esta almacenada con el tipo fecha, aquí también deberás convertir uno de los dos campos.

Sintaxis

La sintaxis de la función CAST es muy sencilla, pero podríamos encontrarnos dos casos diferentes. En el primero de ellos escribimos el nombre de la función y entre paréntesis el valor seguido del tipo a convertir.

SELECT CAST ( VALOR AS TIPO )

En el segundo caso escribimos directamente el valor seguido de :: y el tipo a convertir:

SELECT VALOR::TIPO

Recuerda que el valor puede ser el nombre del campo de una tabla en concreto. Ejemplo:

SELECT CAST( campo1 AS TIPO ),
campo1::TIPO
FROM tabla1;

Ejemplos

Convertir número a texto

En el siguiente ejemplo convertimos un número en un texto:

SELECT 	CAST( 1986 AS TEXT ),
		1986::TEXT;
Función CAST en PostgreSQL

Convertir texto a número

En el siguiente ejemplo convertimos un texto en un número:

SELECT 	CAST( '1986' AS INTEGER ) "Método 1",
		'1986'::INTEGER "Método 2";

Convertir texto a número decimal

En el siguiente ejemplo convertimos un texto en un número decimal:

SELECT 	CAST ('35.2' AS DOUBLE PRECISION) "Método 1",
		'35.2'::DOUBLE PRECISION "Método 2";

Convertir texto a moneda

En el siguiente ejemplo convertimos un texto en una moneda:

SELECT 	CAST( '1986' AS MONEY ) "Método 1",
		'1986'::MONEY "Método 2";

Convertir texto a intervalo

En el siguiente ejemplo convertimos un texto en un intervalo:

SELECT 	CAST( '35 year 3 months 4 days' AS INTERVAL ) "Método 1",
		'35 year 3 months 4 days'::INTERVAL "Método 2";

Convertir texto a fecha

En el siguiente ejemplo convertimos un texto en un fecha:

SELECT 	CAST( 'September 26, 1986' AS DATE ) "Método 1.1",
		CAST( '26/09/1986' AS DATE ) "Método 1.2",
		CAST( '26-09-1986' AS DATE ) "Método 1.3",
		'September 26, 1986'::DATE "Método 2";

Convertir texto a fecha y hora

En el siguiente ejemplo convertimos un texto en una fecha con hora:

SELECT 	CAST ('1986-09-26 15:10:20' AS TIMESTAMP) "Método 1",
		'1986-09-26 15:10:20'::TIMESTAMP "Método 2";

Convertir texto a booleano

En el siguiente ejemplo convertimos un texto en un booleano:

SELECT 	CAST ('true' AS BOOLEAN) "Método 1.1",
		CAST ('t' AS BOOLEAN) "Método 1.2",
		'false'::BOOLEAN "Método 2.1",
		'false'::BOOLEAN "Método 2.2";

Escribir un comentario

Este sitio está protegido por reCAPTCHA y se aplican la política de privacidad y los términos de servicio de Google.