Un elemento de tipo TIMESTAMP es una
serie de uno a veinte dígitos numéricos de un solo byte que reflejan un momento específico. El
significado de cada dígito viene determinado por la máscara que especifica cuando declara el
elemento.
Los caracteres siguientes están disponibles, por orden, cuando especifica la
máscara:
- aaaa
- Cuatro dígitos que representan el año. El rango va de 0000 a 9999.
- MM
- Dos dígitos que representan el mes. El rango va de 01 a 12.
- dd
- Dos dígitos que representan el día. El rango va de 01 a 31.
- HH
- Dos dígitos que representan la hora. El rango va de 00 a 23.
- mm
- Dos dígitos que representan el minuto. El rango va de 00 a 59.
- ss
- Dos dígitos que representan el segundo. El rango va de 00 a 59.
- f
- De cero a seis dígitos que representan cada uno una fracción de segundos; el primero representa
décimas, el segundo representa centésimas, etc.
La máscara por omisión es aaaaMMddHHmmss.
Cuando interactúa
con DB2 (directamente
o a través de JDBC) , debe especificar cada
componente desde el año (
aaaa) hasta los segundos (
ss). En otros contextos, se cumple lo siguiente:
La representación hexadecimal interna de un valor de ejemplo es la siguiente si la
máscara por omisión (
aaaaMMddHHmmss) está en vigor y si el elemento está en un entorno de
sistema principal que
utiliza EBCDIC:
// 8:05:10 a 12 enero 2005
F2 F0 F0 F5 F0 F1 F1 F2 F0 F8 F0 F5 F1 F0
La representación hexadecimal interna de un valor de ejemplo es la siguiente si
la máscara por omisión (aaaaMMddHHmmss) está en vigor y si el elemento está en un entorno de
estación de trabajo como
Windows
2000, que utiliza ASCII:
// 8:05:10 a 12 enero 2005
32 30 30 35 30 31 31 32 30 38 30 35 31 30
Un elemento de tipo TIMESTAMP puede compararse con (o asignarse a o desde) un
elemento de tipo TIMESTAMP o un elemento de tipo DATE, TIME, NUM o CHAR. Sin embargo, se produce un error en tiempo
de desarrollo si asigna un valor que no es válido. A continuación se ofrece un ejemplo:
// NO válido porque el 30 de febrero no es una fecha válida
myTS timestamp("aaaammdd");
myTS = "20050230";
Si faltan los caracteres iniciales de una máscara completa (por
ejemplo, si la máscara es "dd"), EGL supone que los caracteres de nivel superior ("aaaaMM", en este
caso) representen el momento actual, de acuerdo con el reloj del sistema. Las sentencias siguientes
originan un error de tiempo de ejecución en febrero:
// NO válido porque el 30 de febrero no es una fecha
myTS timestamp("dd");
myTS = "30";
Finalmente, un elemento de tipo TIMESTAMP puede recibir datos de o
proporcionar datos a una base de datos relacional.