Casting en PostgreSQL

Casting de tipos de datos en Postgresql

La conversión de datos es común en todos los paradigmas de programación especialmente cuando se manejan transacciones en las bases de datos. Al igual que en otras bases de datos postgresql proporciona para las operaciones CAST que permiten la conversión de un tipo de datos en otro. Hay varias operaciones CAST en postgresql para convertir cadenas de texto en enteros, convertir en booleanos, convertir cadenas de texto en fechas y viceversa. Este artículo ilustra con ejemplos las funciones del operador CAST en postgresql. Cuando se utiliza este operador se utiliza la siguiente sintaxis:

1
CAST (expresión COMO tipo_destino );

donde la expresión puede ser una constante, una columna de la tabla o una expresión que se evalúa a un valor específico. El target_type es el tipo de datos de destino al que resultará nuestra expresión después de la conversión.Otra versión de casting en postgresql implica el uso del operador ::. La sintaxis en este caso es la siguiente:

1
Expresión :: tipo

Tomemos ahora algunos ejemplos utilizando el operador CAST.

Cadena a entero Casting

Al convertir una cadena en un entero, utilizamos la siguiente expresión

1
2
SELECT
CAST (‘500’ AS INTEGER);

Esta ilustración convierte el tipo de cadena «500» en un tipo entero 500. Una cosa clave a recordar es que una conversión exitosa ocurre cuando el tipo de datos de destino es compatible con la expresión. Usando el ejemplo anterior, postgresql a través de un error de conversión de tipo cuando reemplazamos la expresión «500» con «a500» ya que no son compatibles.

Postgres cast to Boolean

Casting expresiones a Boolean los convierte en tipos de datos lógicos. A continuación se muestra un ejemplo que utiliza la función CAST () para fundir expresiones de cadenas, char y enteros en tipos de datos booleanos.

1
2
3
4
5
6
7
SELECT
CAST(‘1’ as BOOLEAN),
CAST(‘0’ as BOOLEAN);
CAST(‘true’ AS BOOLEAN),
CAST(‘false’ as BOOLEAN),
CAST(‘T’ as BOOLEAN),
CAST(‘F’ as BOOLEAN);

Postgresql cast timestamp to date

Obtenemos la fecha exacta a partir de un timestamp específico usando Cast :: con el timestamp como entrada y añadiendo el sufijo ::date:

La sintaxis es la siguiente:

1
SELECT expresión ::TIMESTAMP::DATE;

Toma un ejemplo cuando quieres extraer de ‘2019-07-13 1:20:50′ a ‘2019-07-13’ Nuestra consulta Cast sería:

1
SELECT ‘2019-07-13 1:20:50’::TIMESTAMP::DATE;

Postgresql cast double precision to numeric.

La expresión de doble precisión toma más puntos decimales en comparación con los tipos de datos float. En el caso de la memoria del procesador, los tipos de doble precisión pueden ocupar hasta 64 bits de memoria. Al convertir de doble precisión, es bastante similar a redondear la expresión. Sin embargo, el casting se utiliza cuando queremos obtener el resultado exacto de la expresión. En el siguiente ejemplo, utilizaremos el operador cast :: junto con la sentencia Select para ilustrar la conversión.

Sintaxis : SELECT (Doble precisión :: numérica);SELECT (33.135941093 :: numérica);

Una forma alternativa de hacerlo es utilizar la función cast () como se indica a continuación:

Sintaxis :

SELECT CAST (Double precision AS numeric)

1
2
SELECT
CAST ( 33.135941093 AS numeric)

Postgresql Cast string to a date

El siguiente ejemplo ilustra el casting de cadena a fecha utilizando el comando sql SELECT:

1
2
3
SELECT
CAST (‘2019-07-14’ COMO FECHA),
CAST (’13-JULIO-2019′ COMO FECHA);

En el ejemplo convertimos primero la cadena ‘2019-07-14′ en 14 de julio de 2019 mientras que en la segunda parte convertimos ’13-JULIO-2019’ en 13 de julio de 2019.

Conclusión

Te hemos mostrado varias técnicas de fundición junto con varios ejemplos. Esperamos que hayas encontrado útil alguno de estos ejemplos y seas capaz de aplicar lo aprendido a tu aplicación específica.

Si necesitas ayuda para configurar o gestionar tu base de datos PostgreSQL no dudes en ponerte en contacto con nosotros en Object Rocket para discutir los detalles de tu proyecto y determinar si podemos ayudarte.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.