Todos los productos
Search
Centro de documentos

Hologres:TRY_CAST

Última actualización: Sep 05, 2026

TRY_CAST convierte un valor TEXT a un tipo de dato específico. A diferencia de CAST, nunca genera un error si la conversión falla; en su lugar, devuelve NULL. Utilice TRY_CAST cuando desee gestionar entradas no válidas sin interrumpir la consulta.

Nota

Hologres también admite otras funciones de conversión de tipos. Para obtener más información, consulte Funciones de fecha y hora.

Limitaciones

TRY_CAST requiere Hologres V2.2 o posterior.

Notas de uso

  • La expresión de entrada (source_string_expr) debe ser de tipo TEXT.

  • target_data_type debe ser uno de los siguientes: INTEGER, SMALLINT, BIGINT, REAL, DOUBLE PRECISION, BOOLEAN, DECIMAL, JSONB, DATE, TIMESTAMP o TIMESTAMPTZ.

  • DATE, TIMESTAMP y TIMESTAMPTZ requieren Hologres V3.0 o posterior.

  • Si el valor no se puede convertir al tipo de destino, se devuelve NULL.

Sintaxis

TRY_CAST( <source_string_expr> AS <target_data_type> )

Parámetros

Parámetro

Tipo de dato

Descripción

source_string_expr

TEXT

La columna o expresión por convertir.

target_data_type

Consulte Notas de uso

El tipo de dato de destino. Devuelve NULL si el valor no se puede convertir.

Ejemplos

Conversión de TEXT a INT

Cree una tabla e inserte datos de prueba; luego, utilice TRY_CAST para convertir la columna value de TEXT a INT.

-- Create a table and insert test data
CREATE TABLE IF NOT EXISTS try_cast_test (
  key   int,
  value text
);

INSERT INTO try_cast_test VALUES (1, '1'), (2, 'abc');

-- Convert the value column from TEXT to INT
SELECT key, value, TRY_CAST(value AS INT) AS value_int
FROM try_cast_test;

Resultado:

 key | value | value_int
-----+-------+-----------
   1 | 1     |         1
   2 | abc   | \N
(2 rows)

El valor 'abc' no se puede convertir a INT, por lo que TRY_CAST devuelve NULL para esa fila.

Uso de TRY_CAST con CASE WHEN para gestionar resultados de conversión

Combine TRY_CAST con CASE WHEN para bifurcar la lógica según el resultado de la conversión. Este es el patrón más común para actuar sobre los resultados de TRY_CAST en consultas de producción.

SELECT
  value,
  CASE
    WHEN TRY_CAST(value AS INT) IS NULL THEN 'Not a valid integer'
    ELSE 'Valid integer'
  END AS conversion_status
FROM try_cast_test;

Resultado:

 value | conversion_status
-------+---------------------
 1     | Valid integer
 abc   | Not a valid integer
(2 rows)