Resumen: en este tutorial, le mostraremos cómo usar el operador PostgreSQL CAST para convertir un valor de un tipo a otro.

Introducción al operador PostgreSQL CAST

Hay muchos casos en los que se quiere convertir un valor de un tipo de datos a otro. PostgreSQL le proporciona el operador CAST que le permite hacer esto.

Lo siguiente ilustra la sintaxis del tipo CAST:

Code language: SQL (Structured Query Language) (sql)

En esta sintaxis:

  • Primero, especifique una expresión que puede ser una constante, una columna de la tabla, una expresión que se evalúa a un valor.
  • Luego, especifique el tipo de datos de destino al que desea convertir el resultado de la expresión.

PostgreSQL type cast :: operator

Además de la sintaxis type CAST, puede utilizar la siguiente sintaxis para convertir un valor de un tipo en otro:

Code language: SQL (Structured Query Language) (sql)

Vea el siguiente ejemplo:

Code language: SQL (Structured Query Language) (sql)

Nótese que la sintaxis cast con el operador cast (::) es específica de PostgreSQL y no se ajusta al estándar SQL

Ejemplos CAST de PostgreSQL

Veamos algunos ejemplos de uso del operador CAST para convertir un valor de un tipo en otro.

1) Ejemplo de conversión de una cadena a un entero

La siguiente sentencia convierte una constante de cadena a un entero:

Code language: SQL (Structured Query Language) (sql)

Si la expresión no se puede convertir al tipo de destino, PostgreSQL emitirá un error. Vea el siguiente ejemplo:

Code language: SQL (Structured Query Language) (sql)
Code language: PHP (php)

2) Cast a string to a date example

Este ejemplo utiliza el CAST para convertir una cadena en una fecha:

Code language: SQL (Structured Query Language) (sql)

Primero, convertimos 2015-01-01 cadena literal en January 1st 2015. Segundo, convertimos 01-OCT-2015 en October 1st 2015.

3) Cast una cadena a un ejemplo doble

En el siguiente ejemplo, tratamos de convertir una cadena '10.2' en un valor doble:

Code language: SQL (Structured Query Language) (sql)

Whoops, obtuvimos el siguiente mensaje de error:

Code language: PHP (php)

Para arreglar esto, es necesario utilizar DOUBLE PRECISION en lugar de DOUBLE como sigue:

Code language: SQL (Structured Query Language) (sql)

4) Cast a string to a boolean example

Este ejemplo utiliza el CAST() para convertir la cadena ‘true’, ‘T’ a true y ‘false’, ‘F’ a false:

Code language: SQL (Structured Query Language) (sql)

Aquí está la salida:

5) Convertir una cadena en una marca de tiempo ejemplo

Este ejemplo utiliza el operador cast (::) para convertir una cadena en una marca de tiempo:

Code language: SQL (Structured Query Language) (sql)

6) Convertir una cadena en un intervalo ejemplo

Este ejemplo utiliza el operador cast para convertir una cadena en un intervalo:

Code language: SQL (Structured Query Language) (sql)

Aquí está la salida:

7) Usar CAST con datos de tabla ejemplo

Primero, crea una tabla ratings que consta de dos columnas: id y rating. El tipo de datos de la columna rating es VARCHAR(1):

Code language: SQL (Structured Query Language) (sql)

Segundo, inserte algunos datos de ejemplo en la tabla ratings.

Code language: SQL (Structured Query Language) (sql)

Debido a que los requisitos cambian, utilizamos la misma tabla ratings para almacenar las calificaciones como número, por ejemplo, 1, 2, 3 en lugar de A, B, y C:

Code language: SQL (Structured Query Language) (sql)

Así que la tabla ratings almacena valores mixtos incluyendo numéricos y de cadena.

Code language: SQL (Structured Query Language) (sql)

Ahora, tenemos que convertir todos los valores de la columna rating en enteros, todas las demás valoraciones A, B, C se mostrarán como cero. Para ello, se utiliza la expresión CASE con el tipo CAST como se muestra en la siguiente consulta:

Code language: SQL (Structured Query Language) (sql)

El CASE comprueba la calificación, si coincide con el patrón de enteros, convierte la calificación en un entero, de lo contrario, devuelve 0.

En este tutorial, ha aprendido a utilizar PostgreSQL CAST para convertir un valor de un tipo a otro.

  • ¿Ha sido útil este tutorial?
  • SíNo

Deja una respuesta

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