Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

Función TRY_CAST

Modo de enfoque
Función TRY_CAST - Amazon Redshift

En comparación con la función CAST, TRY_CAST intenta primero convertir la expresión al tipo especificado. Si la conversión falla debido a errores de conversión, la operación devuelve null. Si una conversión no está permitida explícitamente, la operación devuelve un error. Puede encontrar la lista de posibles conversiones en las notas de uso que figuran a continuación. Por ejemplo, no se permite intentar convertir un booleano en una marca temporal.

Sintaxis

TRY_CAST(expression AS type)

Argumentos

expresión

Una expresión que toma el valor de uno o más valores, como un nombre de columna o un literal. La conversión de valores nulos devuelve valores nulos. La expresión no puede tener cadenas en blanco ni vacías.

type

Uno de los tipos de datos admitidos. Para obtener una lista completa de los tipos de datos, consulte Tipos de datos. Para obtener la lista de pares de tipos de datos de origen y tipos de datos de destino admitidos, consulte las notas de uso que figuran a continuación.

Tipo de retorno

TRY_CAST devuelve un valor del tipo de datos especificado por el argumento type. Si la conversión falla, la operación devuelve null.

Notas de uso

A continuación, se muestra la lista de pares de tipos de datos de origen y tipos de datos de destino que Amazon Redshift admite para TRY_CAST.

BOOL

SMALLINT, INT, BIGINT, SUPER

SMALLINT

BOOL, INT, BIGINT, DECIMAL, REAL, FLOAT, BPCHAR, TEXT, VARCHAR, SUPER

INT

BOOL, SMALLINT, BIGINT, DECIMAL, REAL, FLOAT, BPCHAR, TEXT, VARCHAR, SUPER

BIGINT

BOOL, SMALLINT, INT, DECIMAL, REAL, FLOAT, BPCHAR, TEXT, VARCHAR, SUPER

DECIMAL

SMALLINT, INT, BIGINT, REAL, FLOAT, BPCHAR, TEXT, VARCHAR, SUPER

REAL

SMALLINT, INT, BIGINT, DECIMAL, FLOAT, BPCHAR, TEXT, VARCHAR, SUPER

FLOAT

SMALLINT, INT, BIGINT, DECIMAL, REAL, BPCHAR, TEXT, VARCHAR, SUPER

BPCHAR

SMALLINT, INT, BIGINT, DECIMAL, REAL, FLOAT, TEXT, VARCHAR, TIMESTAMP, TIMESTAMPTZ, DATE, TIME, TIMETZ, SUPER

TEXT

SMALLINT, INT, BIGINT, DECIMAL, REAL, FLOAT, BPCHAR, VARCHAR, TIMESTAMP, TIMESTAMPTZ, DATE, TIME, TIMETZ, SUPER

VARCHAR

SMALLINT, INT, BIGINT, DECIMAL, REAL, FLOAT, BPCHAR, TEXT, TIMESTAMP, TIMESTAMPTZ, DATE, TIME, TIMETZ, SUPER

TIMESTAMP

BPCHAR, TEXT, VARCHAR, TIMESTAMPTZ, DATE, TIME

TIMESTAMPTZ

BPCHAR, TEXT, VARCHAR, TIMESTAMP, DATE, TIME, TIMETZ

DATE

BPCHAR, TEXT, VARCHAR, TIMESTAMP, TIMESTAMPTZ

TIME

BPCHAR, TEXT, VARCHAR

TIMETZ

BPCHAR, TEXT, VARCHAR

SUPER

SUPER se puede convertir a cualquier otro tipo de datos, con la excepción de DATE, TIME, TIMETZ, TIMESTAMP y TIMESTAMPTZ.

Ejemplos

El siguiente ejemplo convierte un STRING en un INTEGER.

SELECT TRY_CAST('123' AS INT); int ---- 123

El ejemplo siguiente devuelve null. Se permite convertir un STRING en un INTEGER, por lo que TRY_CAST no devuelve un error, pero “foo” no es un entero, por lo que la función devuelve null.

SELECT TRY_CAST('foo' AS INT)

El siguiente ejemplo devuelve un error, porque no se permite convertir un BOOLEAN en un TIMESTAMP.

SELECT TRY_CAST(true as timestamp);

Debido a que TRY_CAST devuelve un valor nulo en lugar de devolver inmediatamente un error si la conversión falla, puede utilizar TRY_CAST para filtrar datos no válidos. Considere el siguiente ejemplo, en el que se filtra una fila no válida debido a un error de conversión en la columna de edad de Akua Mansa.

CREATE TABLE IF NOT EXISTS student_data( name VARCHAR(100) NOT NULL, age VARCHAR(3) NOT NULL, enrollment_date DATE NOT NULL); INSERT INTO student_data (name, age, enrollment_date) VALUES ('Alejandro Rosalez', '10', '01/01/2000'), ('Akua Mansa', 'Ten', '01/01/2000'); SELECT * FROM student_data WHERE TRY_CAST(age AS INT) IS NOT NULL; --Akua is not returned. name | age | enrollment_date -------------------+-----+----------------- Alejandro Rosalez | 10 | 01/01/2000

En esta página

PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.