Introducción
Cuando trabaja con datos almacenados en PostgreSQL, puede tener algunos datos que preferiría tratar como un tipo de datos diferente. Por ejemplo, puede tener un valor de texto que representa un número, como «53». Para realizar cálculos sobre ese valor, podría tener más sentido convertir ese valor en un entero. En Postgres, la función CAST
se utiliza para convertir el tipo de datos de un valor a un tipo de datos diferente. El valor debe ser compatible con el tipo de datos objetivo; de lo contrario, se devolverá un error. En este artículo de PostgreSQL, le mostraremos cómo utilizar la función CAST
de PostgreSQL y revisaremos algunos ejemplos de diferentes conversiones.
Requisitos previos
Antes de continuar con este tutorial, se deben cumplir dos requisitos previos clave:
- Debe tener PostgreSQL instalado y configurado en su computadora.
- Debe tener algunos conocimientos básicos de PostgreSQL.
Función CAST de PostgreSQL
Hay dos maneras de CAST
un valor en PostgreSQL. En el primer método, especificamos el valor y el tipo de datos objetivo dentro de los paréntesis de la función CAST
. La sintaxis se muestra a continuación:
1
|
SELECT CAST ( VALOR COMO TIPO )
|
Otra forma de castear un valor es utilizando la notación ::
entre el valor y el tipo de datos objetivo. Puede ver la sintaxis a continuación:
1
|
SELECT VALOR::TIPO
|
En esta sintaxis, value
representa el valor que se quiere fundir o cambiar el tipo de datos.El type
representa el tipo de datos que usted está apuntando para este valor; algunos valores posibles de type
incluyen INTEGER
, FLOAT
y CHAR
.
Ejemplo de Postgres CAST
Veamos algunos ejemplos de cómo utilizar la función Postgres CAST
.
Postgres CAST to String
Para nuestro primer ejemplo, lanzaremos un valor como un valor de cadena. Podemos ver cómo se hace en la siguiente sentencia SELECT
:
1
2 3 4 5 |
SELECT CAST( 5137 AS TEXT );
text —— 5137 (1 ROW) |
Postgres CAST to Integer
A continuación, convertiremos un valor de tipo texto a un entero. La siguiente sentencia muestra cómo se hace:
1
2 3 4 5 |
SELECT CAST( ‘214’ AS INTEGER );
int4 —— 214 (1 ROW) |
En el ejemplo que se muestra a continuación, vamos a lanzar un valor entero al tipo de datos MONEY
. Podemos ver cómo funciona en la siguiente sentencia:
1
2 3 4 5 |
SELECT CAST(7419 AS MONEY);
money ———– $7,419.00 (1 ROW) |
Postgres CAST to Interval
Nuestro siguiente ejemplo lanzará un valor de texto al tipo de datos INTERVAL
. La siguiente sentencia SELECT
muestra cómo funciona:
1
2 3 4 5 |
SELECT CAST (‘1 año 2 meses 7 días’ AS INTERVAL);
INTERVAL ———————- 1 AÑO 2 MESES 7 DÍAS (1 FILA) |
Postgres CAST to Date
También podemos utilizar la función CAST
para convertir un valor de texto en un tipo de dato DATE
como se ve en el siguiente ejemplo:
1
2 3 4 5 |
SELECT CAST( ‘July 24, 1999’ AS DATE );
DATE ———— 1999-07-24 (1 ROW) |
Aquí hay otra forma de CAST
texto como fecha:
1
2 3 4 5 |
SELECT CAST( ’24-07-99′ AS DATE );
DATE ———— 1999-07-24 (1 ROW) |
Postgres CAST With Trim
En el ejemplo que se muestra a continuación, recortaremos un valor de texto, y luego lanzaremos el resultado que se devuelve de TRIM
:
1
2 3 4 5 |
SELECT CAST( TRIM( LEADING ‘DATE ‘ FROM ‘DATE January 28, 1998’ ) AS DATE);
ltrim ———— 1998-01-28 (1 ROW) |
Postgres CAST Con Concatenación
Podemos concatenar dos o más cadenas utilizando el operador ||
. En nuestro último ejemplo, concatenaremos un valor de cadena con un valor de fecha que está fundido a TEXT
. La siguiente sentencia muestra cómo se hace:
1
2 3 4 5 |
SELECT ‘La fecha actual es ‘ || CAST( CURRENT_DATE AS TEXT );
?COLUMN? ——————————– La fecha actual es 2020-03-28 (1 ROW) |
Conclusión
Cuando se consultan datos en PostgreSQL, es posible que se desee convertir los valores de ciertas columnas a un tipo de datos diferente. Cambiar el tipo de datos puede facilitar la realización de cálculos y operaciones de procesamiento en los datos que se devuelven. En este artículo, le mostramos cómo utilizar la función CAST de Postgres para convertir el tipo de datos de un valor. Si ha seguido todos los ejemplos presentados en este artículo, será capaz de utilizar la función CAST
de forma efectiva en sus propias consultas PostgreSQL.