Este tema contiene una lista de las transformaciones CAST soportadas entre combinaciones de tipos de datos.
No se da soporte a una transformación CAST entre todas las combinaciones posibles de tipos de datos. Las que están soportadas se indican a continuación, junto con el efecto de la transformación CAST.
Tipo de datos de origen | Tipo de datos de destino | Efecto |
---|---|---|
BIT | BIT | El resultado es el mismo que la entrada. |
BIT | BLOB | La matriz de bits se convierte a una matriz de bytes con un máximo de 263 elementos. Se notificará un error si el origen no tiene la longitud adecuada para producir un BLOB (o sea, un múltiplo de 8). |
BIT | CHARACTER | El resultado es una serie que se ajusta a
la definición de un literal de serie de bits cuyo valor interpretado es el
mismo que el valor de origen.
La serie resultante tiene el formato B'bbbbbb' (donde b e 0 ó
1). Si especifica una cláusula CCSID o ENCODING, se supone que la matriz de bits se compone de caracteres en el CCSID y codificación especificados, y se convierte la página de códigos al valor de retorno de caracteres. Si sólo especifica un CCSID, se supone una codificación big endian. Si sólo especifica una codificación, se supone un CCSID de 1208. Esta función notifica errores de conversión si la página de códigos o la codificación son desconocidas, los datos suministrados no son un número integral de caracteres de la página de códigos, o los datos contienen caracteres que no son válidos en la página de códigos dada. |
BIT | INTEGER | La matriz de bits tiene un máximo de 263 elementos y se convierte a un entero. Se notificará un error si el origen no tiene la longitud correcta que coincida con un entero. |
BLOB | BIT | La matriz de bytes dada se convierte a una matriz de bits con un máximo de 263 elementos. |
BLOB | BLOB | El resultado es el mismo que la entrada. |
BLOB | CHARACTER | El resultado es una serie que se ajusta a la definición
de un literal de serie binario cuyo valor interpretado es el mismo que
el valor de origen.
La serie resultante tiene el formato X'hhhh' (donde h es cualquier
carácter hexadecimal). Si especifica una cláusula CCSID o ENCODING, se supone que la matriz de bytes se compone de caracteres en el CCSID y codificación especificados, y se convierte la página de códigos al valor de retorno de caracteres. Si sólo especifica un CCSID, se supone una codificación big endian. Si sólo especifica una codificación, se supone un CCSID de 1208. Esta función notifica errores de conversión si la página de códigos o la codificación son desconocidas, los datos suministrados no son un número integral de caracteres de la página de códigos, o los datos contienen caracteres que no son válidos en la página de códigos dada. |
BLOB | INTEGER | La matriz de bytes tiene un máximo de 263 elementos y se convierte a un entero. Se notificará un error si el origen no tiene la longitud correcta para que coincida con un entero. |
BOOLEAN | BOOLEAN | El resultado es el mismo que la entrada. |
BOOLEAN | CHARACTER | Si el valor de origen es TRUE, el resultado es la serie de caracteres TRUE. Si el valor de origen es FALSE, el resultado es la serie de caracteres FALSE. Dado que el valor booleano UNKNOWN es el mismo que el valor NULL para booleanos, el resultado es el valor de serie de caracteres NULL si el valor de origen es UNKNOWN. |
CHARACTER | BIT | La serie de caracteres debe ajustarse a las normas de un
literales de serie de bits o al contenido del literal de serie de bits.
Es decir, la serie de caracteres puede tener el formato
B'bbbbbbb' o bbbbbb (donde b' puede ser 0 ó 1).
Si especifica una cláusula CCSID o ENCODING, la serie de caracteres se convierte al CCSID y la codificación especificados y se colocará, sin conversiones adicionales, en el valor de retorno de matriz de bits. Si sólo especifica un CCSID, se supone una codificación big endian. Si sólo especifica una codificación, se supone un CCSID de 1208. Esta función notifica errores de conversión si la página de códigos o la codificación son desconocidas o los datos contienen caracteres Unicode que no se pueden convertir a la página de códigos dada. |
CHARACTER | BLOB | La serie de caracteres debe ajustarse a las normas de un
literal de serie binaria o al contenido del literal de serie binaria.
Es decir, la serie de caracteres puede tener el formato
X'hhhhhh' o hhhhhh (donde
h puede ser cualquier carácter hexadecimal). Si especifica una cláusula CCSID o ENCODING, la serie de caracteres se convierte al CCSID y la codificación especificados y se colocará, sin conversiones adicionales, en el valor de retorno de matriz de bytes. Si sólo especifica un CCSID, se supone una codificación big endian. Si sólo especifica una codificación, se supone un CCSID de 1208. Esta función notifica errores de conversión si la página de códigos o la codificación son desconocidas o los datos contienen caracteres Unicode que no se pueden convertir a la página de códigos dada. |
CHARACTER | BOOLEAN | La serie de caracteres se interpreta de la misma manera que un literal booleano. Es decir, la serie de caracteres debe ser una de las series siguientes: TRUE, FALSE o UNKNOWN (en cualquier combinación de mayúsculas y minúsculas). |
CHARACTER | CHARACTER | El resultado es el mismo que la entrada. |
CHARACTER | DATE | La serie de caracteres debe ajustarse a las normas de un literal de fecha o una serie de fecha. Es decir, la serie de caracteres puede ser DATE '2002-10-05' o 2002-10-05. |
CHARACTER | DECIMAL | La serie de caracteres se interpreta de la misma manera que
el literal numérico exacto para formar un resultado decimal temporal con una
escala y precisión definidas por el formato de la serie.
Ésta se convierte a un decimal de la precisión y escala especificadas, y se
genera un error de ejecución si la conversión produce una pérdida de dígitos
significativos.
Si no especifica la precisión y la escala, la precisión y la escala del resultado serán las mínimas necesarias para contener el valor proporcionado. |
CHARACTER | FLOAT | La serie de caracteres se interpreta de la misma manera que un literal de coma flotante. |
CHARACTER | GMTTIME | La serie de caracteres debe ajustarse a las normas de un literal de hora GMT o de la serie de hora. Es decir, la serie de caracteres puede ser GMTTIME '09:24:15' o 09:24:15. |
CHARACTER | GMTTIMESTAMP | La serie de caracteres debe ajustarse a las normas de un literal de indicación horaria GMT o de la serie de indicación horaria. Es decir, la serie de caracteres puede ser GMTTIMESTAMP '2002-10-05 09:24:15' o 2002-10-05 09:24:15. |
CHARACTER | INTEGER | La serie de caracteres se interpreta de la misma manera que un literal entero. |
CHARACTER | INTERVAL | La serie de caracteres debe ajustarse a las normas de un literal de intervalo con el mismo calificador de intervalo que el indicado en la especificación de CAST, o debe ajustarse a las normas de serie de intervalo que se apliquen al calificador de intervalo indicado. |
CHARACTER | TIME | La serie de caracteres debe ajustarse a las normas de un literal de hora o de la serie de hora. Es decir, la serie de caracteres puede ser TIME '09:24:15' o 09:24:15. |
CHARACTER | TIMESTAMP | La serie de caracteres debe ajustarse a las normas de un literal de indicación horaria o de la serie de indicación horaria. Es decir, la serie de caracteres puede ser TIMESTAMP '2002-10-05 09:24:15' o 2002-10-05 09:24:15. |
DATE | CHARACTER | El resultado es una serie que se ajusta a la definición
de un literal de fecha cuyo valor interpretado es el mismo que el valor de fecha
de origen.
Por ejemplo:
CAST(DATE '2002-10-05' AS CHAR)devuelve DATE '2002-10-05' |
DATE | DATE | El resultado es el mismo que la entrada. |
DECIMAL | CHARACTER | El resultado es la serie de caracteres más corta que se ajuste a la definición de un literal numérico exacto y cuyo valor interpretado sea el valor del decimal. |
DECIMAL | DECIMAL | El valor se convierte a la precisión y escala especificadas, y se genera un error de ejecución si la conversión produce una pérdida de dígitos significativos. Si no especifica la precisión y la escala, el valor, la precisión y la escala se conservarán; es un NOOP (sin operación). |
DECIMAL | FLOAT | El número se convierte, con redondeo si es necesario. |
DECIMAL | INTEGER | El valor se redondea y se convierte a un entero, y se genera un error de ejecución si la conversión produce una pérdida de dígitos significativos. |
DECIMAL | INTERVAL | Si el calificador de intervalo indicado sólo tiene un campo, el resultado es un intervalo con ese calificador con el campo igual al valor del numérico exacto. De lo contrario, no se generará ningún error de ejecución. |
FLOAT | CHARACTER | El resultado es la serie de caracteres más corta que se ajuste a la definición de un literal numérico aproximado y cuya mantisa consta de un único dígito distinto de 0, seguido de un punto y un entero sin signo, y cuyo valor interpretado es el valor flotante. |
FLOAT | FLOAT | El resultado es el mismo que la entrada. |
FLOAT | DECIMAL | El valor se redondea y se convierte a un decimal de la precisión y escala especificadas, y se genera un error de ejecución si la conversión produce una pérdida de dígitos significativos. Si no especifica la precisión y la escala, la precisión y la escala del resultado serán las mínimas necesarias para contener el valor proporcionado. |
FLOAT | INTEGER | El valor se redondea y se convierte a un entero, y se genera un error de ejecución si la conversión produce una pérdida de dígitos significativos. |
GMTTIME | CHARACTER | El resultado es una serie que se ajusta a la definición de un literal GMTTIME cuyo valor interpretado es el mismo que el valor de origen. La serie resultante tiene el formato GMTTIME 'hh:mm:ss'. |
GMTTIME | GMTTIME |
El resultado es el mismo que la entrada. |
GMTTIME | TIME | El valor resultante es el valor de origen más el desplazamiento de huso horario local (según el valor devuelto por LOCAL_TIMEZONE). El campo de horas se calcula en formato 24 horas. |
GMTTIMESTAMP | CHARACTER | El resultado es una serie que se ajusta a la definición de un literal GMTTIMESTAMP cuyo valor interpretado es el mismo que el valor de origen. La serie resultante tiene el formato GMTTIMESTAMP 'aaaa-mm-dd hh:mm:ss'. |
GMTTIMESTAMP | GMTTIMESTAMP | El resultado es el mismo que la entrada. |
GMTTIMESTAMP | TIMESTAMP | El valor resultante es el valor de origen más el desplazamiento de huso horario local (según el valor devuelto por LOCAL_TIMEZONE). |
INTEGER | BIT | El entero dado se convierte a una matriz de bits con un máximo de 263 elementos. |
INTEGER | BLOB | El entero dado se convierte a una matriz de bytes con un máximo de 263 elementos. |
INTEGER | CHARACTER | El resultado es la serie de caracteres más corta que se ajuste a la definición de un literal numérico exacto y cuyo valor interpretado sea el valor del entero. |
INTEGER | FLOAT | El número se convierte, con redondeo si es necesario. |
INTEGER | INTEGER | El resultado es el mismo que la entrada. |
INTEGER | DECIMAL | El valor se convierte a un decimal de la precisión y escala especificadas, y se genera un error de ejecución si la conversión produce una pérdida de dígitos significativos. Si no especifica la precisión y la escala, la precisión y la escala del resultado serán las mínimas necesarias para contener el valor proporcionado. |
INTEGER | INTERVAL | Si el calificador de intervalo indicado sólo tiene un campo, el resultado es un intervalo con ese calificador con el campo igual al valor del numérico exacto. De lo contrario, no se generará ningún error de ejecución. |
INTERVAL | CHARACTER | El resultado es una serie que se ajusta a la definición
de un literal INTERVAL, cuyo valor interpretado es el mismo que el valor
de intervalo de origen.
Por ejemplo:
CAST(INTERVAL '4' YEARS AS CHAR)devuelve INTERVAL '4' YEARS |
INTERVAL | DECIMAL | Si el valor de intervalo tiene un calificador que sólo tiene un campo, el resultado es un decimal de la precisión y escala especificadas con ese valor, y se genera un error de ejecución si la conversión produce una pérdida de dígitos significativos. Si el intervalo tiene un calificador con más de un campo como, por ejemplo, YEAR TO MONTH, se genera un error de ejecución. Si no especifica la precisión y la escala, la precisión y la escala del resultado serán las mínimas necesarias para contener el valor proporcionado. |
INTERVAL | INTEGER | Si el valor de intervalo tiene un calificador que sólo tiene un campo, el resultado es un entero con ese valor. Si el intervalo tiene un calificador con más de un campo como, por ejemplo, YEAR TO MONTH, se genera un error de ejecución. |
INTERVAL | INTERVAL | El resultado es el mismo que la entrada. Los intervalos de año-mes sólo se pueden convertir a intervalos de año-mes, y los intervalos de día-segundo sólo a intervalos de día-segundo. El intervalo de origen se convierte a un escalar en unidades del campo menos significativo del calificador de intervalo de destino. Este valor se normaliza en un intervalo con el calificador de intervalo de destino. Por ejemplo, para convertir un intervalo que tiene el calificador MINUTE TO SECOND a un intervalo con el calificador DAY TO HOUR, el valor de origen se convierte a un escalar en unidades de horas y este valor se normaliza en un intervalo con el calificador DAY TO HOUR. |
TIME | CHARACTER | El resultado es una serie que se ajusta a la definición de
un literal TIME, cuyo valor interpretado es el mismo que el valor de hora
de origen.
Por ejemplo:
CAST(TIME '09:24:15' AS CHAR)devuelve TIME '09:24:15' |
TIME | GMTTIME | El valor de resultado es el valor de origen menos el desplazamiento de huso horario local (según el valor devuelto por LOCAL_TIMEZONE). El campo de horas se calcula en formato 24 horas. |
TIME | TIME | El resultado es el mismo que la entrada. |
TIME | TIMESTAMP | El resultado es un valor cuyos campos de fecha se toman de la fecha actual y cuyos campos de hora se toman del valor de hora de origen. |
TIMESTAMP | CHARACTER | El resultado es una serie que se ajusta a la definición
de un literal TIMESTAMP, cuyo valor interpretado es el mismo que el valor
de indicación horaria de origen.
Por ejemplo:
CAST(TIMESTAMP '2002-10-05 09:24:15' AS CHAR)devuelve TIMESTAMP '2002-10-05 09:24:15' |
TIMESTAMP | DATE | El resultado es un valor cuyos campos se componen de los campos de fecha del valor de indicación horaria de origen. |
TIMESTAMP | GMTTIMESTAMP | El valor resultante es el valor de origen menos el desplazamiento de huso horario local (según el valor devuelto por LOCAL_TIMEZONE). |
TIMESTAMP | TIME | El resultado es un valor cuyos campos se componen de los campos de hora del valor de indicación horaria de origen. |
TIMESTAMP | TIMESTAMP | El resultado es el mismo que la entrada. |
Consulte el apartado Tipos de datos ESQL para obtener información sobre precisión, escala y calificador de intervalo.
Conceptos relacionados
ESQL
Tipos de datos ESQL
Tareas relacionadas
Desarrollo de ESQL
Referencia relacionada
Funciones ESQL complejas
Función CAST
Especificación CAST
Transformaciones CAST implícitas
Tipos de datos de valores de fuentes externas
Avisos |
Marcas registradas |
Descargas |
Biblioteca |
Soporte |
Información de retorno (feedback)
![]() ![]() |
ak05680_ |