IBM FileNet P8, Version 5.2.1            

Funciones de conversión de tipos de datos

Esta sección contiene breves descripciones de las funciones que convierten expresiones de un tipo de datos a otro.

Tabla 1. Tabla de funciones que convierten un tipo de datos en otro
Función Qué hace
convert Convierte una expresión de un tipo de datos admitido a otro.
numbertostring Convierte una expresión entera o flotante en una expresión de serie, utilizando una máscara especificada.
stringtotime Convierte una expresión de serie en una expresión de tiempo, utilizando una máscara especificada.
timetostring Convierte una expresión de tiempo en una expresión de serie, utilizando una máscara especificada.
is_valid Determina si la expresión especificada es un valor válido que se puede convertir en el tipo de dato simple especificado.

convert

Esta función convierte una expresión de un tipo de datos admitido a otro. Utilice la siguiente sintaxis:
convert (source_expr, type_name)
donde:
Tabla 2. Parámetros y descripción de la función convert
Parámetro Descripción
source_expr Una expresión de cualquier tipo de dato admitido. Esta expresión se convierte en el tipo de dato especificado en type_name.
type_name

El tipo de dato en el que se convierte source_expr. Las entradas válidas son flotante, flotante[ ], entero, entero[ ], serie, serie[], booleano, booleano[ ], tiempo y tiempo[ ].

Tenga en cuenta que si type_name viene seguido de corchetes, source_expr también debe ser una matriz. Cada elemento de la matriz se convierte en el type_name por las reglas que se aplican a los tipos de datos simples.

Los resultados de la función de conversión varían en función de los tipos de datos de source_exp y type_name.

Nota: Tenga en cuenta que utilizar la función de conversión con ciertas combinaciones de tipos de datos produce errores de sintaxis. Por ejemplo, es ilógico convertir un tipo de dato de tiempo en un tipo de dato booleano, por lo que se produce un error de sintaxis. Utilice, según sea necesario, la función is_valid para verificar un tipo de expresión antes de utilizar dicha expresión en una función de conversión

Convertir un tipo booleano

Si la source_expr es de tipo booleano, los resultados de la función de conversión son los siguientes.

Tabla 3. Resultados de la función convert cuando el tipo de datos es booleano
Convertir de booleano a... Resultados
Booleano No cambia.
flotante Si la expresión booleana es verdadera, el resultado es 1; si la expresión booleana es falsa, el resultado es 0.
entero Si la expresión booleana es verdadera, el resultado es 1; si la expresión booleana es falsa, el resultado es 0.
serie Si la expresión booleana es verdadera (true), el resultado es "verdadero"; si la expresión booleana es falsa, el resultado es "falso".
hora Error de sintaxis.

Convertir un tipo flotante

Si la source_expr es de tipo flotante, los resultados de la función de conversión son los siguientes.

Tabla 4. Resultados de la función convert cuando el tipo de datos es flotante
Convertir de flotante a... Resultados
Booleano

Si source_expr = 0, el resultado es falso; si source_expr = 1, el resultado es verdadero.

Si source_expr <> 0 o 1, se produce un error de sintaxis.

flotante No cambia.
entero Convierte la parte entera de la source_expr (es decir, trunca todos los números situados a la derecha de la coma decimal). Si el resultado no está dentro del intervalo de números enteros, se produce un error.
serie Da como resultado una serie de caracteres numéricos que representan al flotante.
hora

Utiliza la parte entera de la source_expr como el número de segundos para añadir a 1/1/1970 00:00:00 UTC (Tiempo Coordinado Universal); devuelve la nueva hora.

UTC (Tiempo Coordinado Universal) Anteriormente denominado GMT (hora media de Greenwich), el UTC es la zona horaria de referencia estándar a nivel mundial.

Por ejemplo, la conversión (5,3, tiempo) devuelve 1/1/1970 00:00:05.

Convertir un tipo entero

Si la source_expr es de tipo entero, los resultados de la función de conversión son los siguientes.
Tabla 5. Resultados de la función convert cuando el tipo de datos es entero
Convertir de entero a... Resultados
Booleano

Si source_expr = 0, el resultado es falso; si source_expr = 1, el resultado es verdadero.

Si source_expr <> 0 o 1, se produce un error de sintaxis.

flotante Da como resultado el valor flotante equivalente.
entero No cambia.
serie Da como resultado una serie de caracteres numéricos que representan al entero.
hora

Utiliza la source_expr como el número de segundos para añadir a 1/1/1970 00:00:00 UTC (Tiempo Coordinado Universal); devuelve la nueva hora.

Por ejemplo, la conversión (5, time) devuelve 1/1/1970 00:00:05.

Convertir un tipo de serie

Si la source_expr es de tipo de serie, los resultados de la función de conversión son los siguientes.

Tabla 6. Resultados de la función convert cuando el tipo de datos es serie
Convertir de serie a... Resultados
Booleano Error de sintaxis, a no ser que source_expr = "true" o source_expr = "false". (Cualquier combinación de mayúsculas y minúsculas es aceptable.)
flotante Error de sintaxis, a no ser que source_expr sea una representación legítima de un valor flotante.
entero Error de sintaxis, a no ser que source_expr sea una representación legítima de un valor flotante.
serie No cambia.
hora

Error de sintaxis, a no ser que source_expr sea una representación de un valor de tiempo y utilice el formato especificado en la máscara de fecha/hora para el sistema de flujo.

Convertir un tipo de tiempo

Si la source_expr es de tipo tiempo, los resultados de la función de conversión son los siguientes.

Tabla 7. Resultados de la función convert cuando el tipo de datos es hora
Convertir de tiempo a... Resultados
Booleano Error de sintaxis.
flotante

Devuelve el número de segundos entre la hora actual del sistema y 1/1/1970 00:00:00 UTC (Tiempo Coordinado Universal).

Por ejemplo, si SysTime = 1/1/1970 00:00:28 UTC, la conversión (SysTime, flotante) devuelve 28.

Si la hora actual del sistema está establecida en una zona horaria diferente a UTC, la función de conversión realiza el ajuste necesario. Por ejemplo, hay una diferencia de 8 horas entre la hora estándar del Pacífico (PST) y UTC; si SysTime = 1/1/1970 00:00:28 PST y la zona horaria local es PST, la conversión (SysTime, flotante) devuelve 28828.0.

8(horas) * 60(minutos) *60(segundos) + 28(segundos)

entero

Devuelve el número de segundos entre la hora actual del sistema y 1/1/1970 00:00:00 UTC (Tiempo Coordinado Universal).

Por ejemplo, si SysTime = 1/1/1970 00:00:28 UTC, la conversión (SysTime, entero) devuelve 28.

Si la hora actual del sistema está establecida en una zona horaria diferente a UTC, la función de conversión realiza el ajuste necesario. Por ejemplo, hay una diferencia de 8 horas entre PST y UTC; si SysTime = 1/1/1970 00:00:28 PST y la zona horaria local es Pacific Standard Time (hora estándar del Pacífico, PST), la conversión (SysTime, entero) devuelve 28828.

8(horas) * 60(minutos) *60(segundos) + 28(segundos)

serie

Da como resultado una representación de serie de la source_expr. Tenga en cuenta que esta cadena utiliza el formato especificado en la máscara de fecha y hora del sistema de trabajo.

hora No cambia.

numbertostring

Esta función convierte una expresión flotante o entera en una expresión de serie, utilizando el formato que especifica. Utilice esta función cuando quiera visualizar un número en un determinado formato (por ejemplo, $1.000.000). También puede utilizar la función numbertotring para redondear números.

Utilice la siguiente sintaxis:
numbertostring (num_exp{, num_mask}opt)
donde:
Parámetro Descripción
num_exp Una expresión de tipo flotante o de tipo entero.
num_mask

Una máscara numérica que determina el formato de salida de la función numbertostring.

Aunque sea opcional, tenga en cuenta que si no introduce una máscara numérica, la función numbertostring es equivalente a la función de conversión.

Máscara numérica

Una máscara numérica es una plantilla utilizada para dar formato a la salida de la función numbertostring. Una máscara numérica es una expresión de serie que contiene cualquier combinación válida de los siguientes componentes.

Componente Significado
+ (más)

Cuando es el primer o el último componente de la máscara, muestra el signo del número.

Cuando está en una posición que no es ni la primera ni la última, el signo más se inserta en la serie de salida exactamente en el mismo sitio donde se puso en la máscara. Por ejemplo:

numbertostring (12345, "###+##")

salidas 123+45

- (menos)

Cuando es el primer o el último componente de la máscara, muestra un signo negativo si el número es negativo o muestra un espacio si el número es positivo.

Cuando está en una posición que no es ni la primera ni la última, el signo menos se inserta en la serie de salida exactamente en el mismo sitio donde se puso en la máscara. Por ejemplo:

numbertostring (123456789, "###-##-####")

salidas 123-45-6789

# (signo de número) Muestra un dígito si es significativo. Cuando la máscara contiene más # que dígitos significativos, los # situados más a la derecha reciben primero los números y los # que sobran se llenan con espacios en blanco.
0 (cero) Muestra un dígito sea o no significativo; pueden aparecer ceros tanto al principio como al final.
. (decimal) Determinar donde va la coma del decimal. Si no se especifica, se supone que la coma del decimal se sitúa en el extremo derecho de la máscara. El número se redondea para encajar en la máscara. Sólo se permite una coma de decimal en una máscara.

Ejemplos de máscaras numéricas

A continuación tiene la salida resultante cuando la función numbertostring convierte los siguientes números: 0, +29, -3344 y 77,88369. A la salida se le da formato de acuerdo con las máscaras numéricas.

Nota: Si la máscara es demasiado pequeña para el número, se produce un error. La máscara es demasiado pequeña si hay muy pocos # o 0 a la izquierda de la coma del decimal. Por ejemplo, la máscara ## es insuficiente para el número 300.
Máscara 0 +29 -3344 77,88369
0000 0000 0029 3344 0078
####   29 3344 78
$#,### $ $29 $3.344 $78
+#### + +29 -3344 +78
-####   29 -3344 78
####+ + 29+ 3344- 78+
####- 29 3344- 78
##.## . 29. Error en tiempo de ejecución 77,88

Redondear números

Para redondear un número, utilice la función numbertostring y la máscara numérica apropiada. Cada número se redondea para encajar en el último lugar de la máscara. El siguiente ejemplo redondea un número en millares. En el ejemplo, Number1 es el nombre de una expresión de tipo flotante.
numbertostring (Number1, "#,###.###")
Si Number1 = 3344,7788, la salida resultante es:
3.344,779

is_valid

Esta función determina si la expresión especificada es un valor válido que se puede convertir en el tipo de dato simple especificado. Esta función devuelve el valor booleano verdadero si la expresión es válida; en caso contrario, la función devuelve un valor de falso. Puede ser útil verificar el tipo de una expresión mediante la función is_valid antes de utilizar dicha expresión en una función de conversión. Utilice la siguiente sintaxis:
is_valid (expr, type)
donde:
Tabla 8. Parámetros y descripción de la función is_valid
Parámetro Descripción
expr Cualquier expresión.
type Un tipo de dato simple (booleano, flotante, entero, serie, tiempo).
A continuación tiene dos ejemplos que utilizan expresiones de serie. El primer ejemplo devuelve verdadero, el segundo ejemplo devuelve falso. En el primer ejemplo, str = "verdadero".
is_valid (str, Boolean)
is_valid ("1.2.3", float)
El ejemplo que tiene a continuación verifica si la expresión flotante especificada es válida para la conversión en un tipo entero; este ejemplo devuelve falso porque el valor flotante está fuera del intervalo de valores enteros válidos.
is_valid (1e20, integer)


Last updated: October 2015
bpfe005.htm

© Copyright IBM Corp. 2015.