Notas del release


42.8 Compatibilidad del tipo GRAPHIC y DATE/TIME/TIMESTAMP

En las secciones siguientes, las referencias a los valores de fecha y hora que tienen representaciones de "series de caracteres" se han cambiado a representaciones de "serie". Ahora DB2 soporta, sólo para bases de datos Unicode, representaciones de "serie gráfica" de los valores de fecha y hora.

42.8.1 Representaciones de serie de los valores de fecha y hora

Los valores cuyos tipos de datos son DATE, TIME o TIMESTAMP se representan en un formato interno que es transparente para el usuario. Sin embargo, los valores de fecha, hora e indicación de fecha y hora pueden representarse también mediante series. Esto es útil porque no existen constantes o variables cuyos tipos de datos sean DATE, TIME o TIMESTAMP. Para poderlo recuperar, un valor de fecha y hora debe asignarse una variable de tipo serie. Se puede utilizar la función CHAR o la función GRAPHIC (sólo para bases de datos Unicode) para cambiar un valor de fecha y hora por una representación de serie. La representación de serie es normalmente el formato por omisión de los valores de fecha y hora asociados con el código de país/región de la base de datos, a no ser que éstos se alteren temporalmente mediante la especificación de la opción DATETIME cuando se precompila o se enlaza el programa a la base de datos.

Independientemente de su longitud, no se puede utilizar una serie de objeto grande, un valor LONG VARCHAR ni un valor LONG VARGRAPHIC para representar un valor de fecha y hora (SQLSTATE 42884).

Cuando se utiliza una representación de serie válida de un valor de fecha y hora en una operación con un valor de fecha y hora interno, la representación de serie se convierte al formato interno del valor de fecha, hora o indicación de fecha y hora antes de que se realice la operación.

Las series de fecha, hora e indicación de fecha y hora sólo deben contener caracteres y dígitos.

42.8.1.1 Series de fecha, series de hora y series de indicación de fecha y hora

Las definiciones de estos términos se han modificado ligeramente. Las referencias a las representaciones de "serie de caracteres" se han cambiado por representaciones de "serie".

42.8.2 Difusión entre tipos de datos

Ahora DATE, TIME y TIMESTAMP pueden difundirse a GRAPHIC y VARGRAPHIC. GRAPHIC y VARGRAPHIC pueden difundirse ahora a DATE, TIME y TIMESTAMP. El soporte de serie gráfica sólo está disponible para bases de datos Unicode.

42.8.3 Asignaciones y comparaciones

Ahora existe compatibilidad de tipo de datos para las asignaciones y comparaciones entre las series de gráficas y los valores de DATE, TIME y TIMESTAMP. El soporte de serie gráfica sólo está disponible para bases de datos Unicode.

42.8.4 Asignaciones de fecha y hora

La norma básica para las asignaciones de fecha y hora consiste en que un valor DATE, TIME o TIMESTAMP sólo se puede asignar a una columna con un tipo de datos que coincida (DATE, TIME o TIMESTAMP) o a una columna de serie o variable de tipo serie de longitud fija o variable. La asignación no debe realizarse a una columna o variable LONG VARCHAR, CLOB, LONG VARGRAPHIC, DBCLOB o BLOB.

Cuando se asigne un valor de fecha y hora a una columna de serie o variable de tipo serie, la conversión a una representación de serie es automática. Los ceros iniciales no se omiten de ninguna parte de la fecha, la hora o la indicación de fecha y hora. La longitud necesaria del destino variará, en función del formato de la representación de serie. Si la longitud del destino es mayor que la longitud necesaria y el destino es una serie de longitud fija, dicha longitud se rellenará a la derecha con espacios en blanco. Si la longitud del destino es menor que la longitud necesaria, el resultado dependerá del tipo de valor de fecha y hora implicado y del tipo de destino.

Cuando el destino es una variable de sistema principal, se aplican las normas siguientes:

42.8.5 DATE

>>-DATE--(--expresión--)---------------------------------------><
 
 

Es esquema es SYSIBM.

La función DATE devuelve una fecha a partir de un valor.

El argumento debe ser una fecha, una indicación de fecha y hora, un número positivo menor que o igual a 3.652.059, una representación de serie válida de una fecha o indicación de fecha y hora o una serie de longitud 7 que no sea LONG VARCHAR, CLOB, LONG VARGRAPHIC, DBCLOB o BLOB.

Sólo las bases de datos Unicode soportan un argumento que sea una representación de serie gráfica de una fecha o una indicación de fecha y hora.

Si el argumento es una serie de longitud 7, debe representar una fecha válida en el formato aaaannn, donde aaaa son dígitos que indican un año y nnn son dígitos entre 001 y 366, que indican un día de dicho año.

El resultado de la función es una fecha. Si el argumento puede ser nulo, el resultado puede ser nulo; si el argumento es nulo, el resultado es el valor nulo.

Las demás normas dependen del tipo de datos del argumento:

Ejemplos:

Suponga que la columna RECEIVED (indicación de fecha y hora) tiene un valor interno equivalente a '1988-12-25-17.12.30.000000'.

42.8.6 GRAPHIC

>>-GRAPHIC--(--expresión-gráfica--+-----------+--)-------------><
                                  '-,--entero-'
 
 

Es esquema es SYSIBM.

La función GRAPHIC devuelve una representación GRAPHIC de un tipo de serie gráfica o una representación GRAPHIC de un tipo de indicación de fecha y hora.

expresión-gráfica
Expresión que devuelve un valor es una serie gráfica.

entero
Valor entero que especifica el atributo de longitud del tipo de datos GRAPHIC resultante. El valor debe estar entre 1 y 127. Si no se especifica entero, la longitud del resultado es igual a la longitud del primer argumento.

El resultado de la función es un GRAPHIC. Si el argumento puede ser nulo, el resultado puede ser nulo; si el argumento es nulo, el resultado es el valor nulo.

Fecha y hora a gráfico

>>-GRAPHIC--(--expresión-fechahora--+--------------+--)--------><
                                    '-,--+-ISO---+-'
                                         +-USA---+
                                         +-EUR---+
                                         +-JIS---+
                                         '-LOCAL-'
 
 

Fecha y hora a gráfico

expresión-fechahora
Expresión que es de uno de los tres tipos de datos siguientes

date
El resultado es la representación de serie gráfica de la fecha en el formato especificado por el segundo argumento. La longitud del resultado es 10. Se produce un error si se especifica el segundo argumento y éste no es un valor válido (SQLSTATE 42703).

time
El resultado es la representación de serie gráfica de la hora en el formato especificado por el segundo argumento. La longitud del resultado es 8. Se produce un error si se especifica el segundo argumento y éste no es un valor válido (SQLSTATE 42703).

timestamp
El segundo argumento no es aplicable y no se debe especificar (SQLSTATE 42815). El resultado es la representación de serie gráfica de la indicación de fecha y hora. La longitud del resultado es 26.

La página de códigos de la serie es la página de códigos de la base de datos en el servidor de aplicaciones.

42.8.7 TIME

>>-TIME--(--expresión--)---------------------------------------><
 
 

Es esquema es SYSIBM.

La función TIME devuelve una hora a partir de un valor.

El argumento debe ser una hora, una indicación de fecha y hora o una representación de serie válida de una hora o de una indicación de fecha y hora que no sea LONG VARCHAR, CLOB, LONG VARGRAPHIC, DBCLOB o BLOB.

Sólo las bases de datos Unicode soportan un argumento que sea una representación de serie gráfica de una hora o de una indicación de fecha y hora.

El resultado de la función es una hora. Si el argumento puede ser nulo, el resultado puede ser nulo; si el argumento es nulo, el resultado es el valor nulo.

Las demás normas dependen del tipo de datos del argumento:

Ejemplo:

42.8.8 TIMESTAMP

>>-TIMESTAMP--(--expresión--+------------+--)------------------><
                            '-,expresión-'
 
 

Es esquema es SYSIBM.

La función TIMESTAMP devuelve una indicación de fecha y hora a partir de un valor o de un par de valores.

Sólo las bases de datos Unicode soportan un argumento que sea una representación de serie gráfica de una fecha, una hora o una indicación de fecha y hora.

Las normas para los argumentos dependen de que se especifique o no el segundo argumento.

El resultado de la función es una indicación de fecha y hora. Si cualquiera de los argumentos puede ser nulo, el resultado puede ser nulo; si cualquiera de los argumentos es nulo, el resultado es el valor nulo.

Las demás normas dependen de que se especifique el segundo argumento:

Ejemplo:

42.8.9 VARGRAPHIC

Carácter a Vargraphic:

>>-VARGRAPHIC--(--expresión-serie-caracteres--)----------------><
 
 

Fecha y hora a Vargraphic:

>>-VARGRAPHIC--(--expresión-fechahora--)-----------------------><
 
 

Gráfica a Vargraphic:

>>-VARGRAPHIC--(--expresión-serie-gráfica--+-----------+--)----><
                                           '-,--entero-'
 
 

Es esquema es SYSIBM.

La función VARGRAPHIC devuelve una representación de serie gráfica de un:

El resultado de la función es una serie gráfica de longitud variable (tipo de datos VARGRAPHIC). Si el primer argumento puede ser nulo, el resultado puede ser nulo; si el primer argumento es nulo, el resultado es el valor nulo.

Carácter a Vargraphic

expresión-serie-caracteres
Expresión cuyo valor debe ser de un tipo de datos de serie de caracteres distinto de LONG VARCHAR o CLOB y cuya longitud máxima no debe exceder de 16.336 bytes.

El atributo de longitud del resultado es igual al atributo de longitud del argumento.

Supongamos que S indica el valor de la expresión-serie-caracteres. Cada carácter de un solo byte de S se convierte a su representación de doble byte equivalente o al carácter de sustitución de doble byte en el resultado; cada carácter de doble byte de S se correlaciona 'tal cual'. Si el primer byte de un carácter de doble byte aparece como el último byte de S, se convierte en el carácter de sustitución de doble byte. Se conserva el orden secuencial de los caracteres en S.

A continuación se proporcionan consideraciones adicionales acerca de la conversión.

Fecha y hora a Vargraphic

expresión-fechahora
Expresión cuyo valor debe ser del tipo de datos DATE, TIME o TIMESTAMP.

Gráfica a Vargraphic

expresión-serie-gráfica
Expresión que devuelve un valor que es una serie gráfica.

entero
Atributo de longitud para la serie gráfica de longitud variable resultante. El valor debe estar entre 0 y 16.336. Si no se especifica este argumento, la longitud del resultado es igual a la longitud del argumento.

Si la longitud de la expresión-serie-gráfica es mayor que el atributo de longitud del resultado, se realiza un truncamiento y se devuelve un aviso (SQLSTATE 01004), a menos que los caracteres truncados sean espacios en blanco y la expresión-serie-gráfica no sea una serie larga (LONG VARGRAPHIC o DBCLOB).


[ Principio de página | Página anterior | Página siguiente | Contenido | Índice ]