Función CONVERT - Amazon Redshift

Función CONVERT

Al igual que la función CAST, la función CONVERT convierte un tipo de datos en otro tipo compatible. Por ejemplo, puede convertir una cadena en una fecha o un tipo numérico en una cadena. CONVERT realiza una conversión en tiempo de ejecución, lo que significa que la conversión no cambia el tipo de datos de un valor en una tabla de origen. Solo cambia en el contexto de la consulta.

Determinados tipos de datos requieren una conversión explícita a otros tipos de datos con la función CONVERT. Otros tipos de datos se pueden convertir implícitamente, como parte de otro comando, sin utilizar CAST ni CONVERT. Consulte Conversión y compatibilidad de tipos.

Sintaxis

CONVERT ( type, expression )

Argumentos

type

Uno de los Tipos de datos admitidos.

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.

Tipo de retorno

CONVERT devuelve el tipo de datos especificado por el argumento type.

nota

Amazon Redshift devuelve un error si intenta realizar una conversión problemática, como una conversión DECIMAL que pierde precisión, como la siguiente:

SELECT CONVERT(decimal(2,1), 123.456);

o una conversión a un valor de INTEGER que genera un desbordamiento:

SELECT CONVERT(smallint, 12345678);

Ejemplos

Algunos de los ejemplos utilizan la base de datos de muestra TICKIT. Para obtener más información acerca de cómo configurar datos de ejemplo, consulte Cargar datos.

En la siguiente consulta, se utiliza la función CONVERT para convertir una columna de decimales en enteros

SELECT CONVERT(integer, pricepaid) FROM sales WHERE salesid=100;

En este ejemplo, se convierte un entero en una cadena de caracteres.

SELECT CONVERT(char(4), 2008);

En este ejemplo, la fecha y la hora actuales se convierten en un tipo de datos de carácter variable:

SELECT CONVERT(VARCHAR(30), GETDATE()); getdate --------- 2023-02-02 04:31:16

En este ejemplo, se convierte la columna saletime solo en la hora y se eliminan las fechas de cada fila.

SELECT CONVERT(time, saletime), salesid FROM sales order by salesid limit 10;

Para obtener información sobre la conversión de una marca temporal de una zona horaria a otra, consulte Función CONVERT_TIMEZONE. Para obtener más funciones de fecha y hora, consulte Funciones de fecha y hora.

En el siguiente ejemplo, se convierten datos de caracteres variable en un objeto datetime.

SELECT CONVERT(datetime, '2008-02-18 02:36:48') as mysaletime;
nota

No puede realizar una operación de CAST o CONVERTER en un tipo de datos GEOMETRY para cambiarlo a otro tipo de datos. No obstante, puede proporcionar una representación hexadecimal de una cadena literal en un formato extendido de binario conocido (EWKB) como entrada a las funciones que aceptan un argumento GEOMETRY. Por ejemplo, la función ST_AsText siguiente espera un tipo de datos GEOMETRY.

SELECT ST_AsText('01010000000000000000001C400000000000002040');
st_astext ------------ POINT(7 8)

También puede especificar explícitamente el tipo de datos GEOMETRY.

SELECT ST_AsText('010100000000000000000014400000000000001840'::geometry);
st_astext ------------ POINT(5 6)