Cómo convertir fechas alfanuméricas en fechas de WebFOCUS

En esta sección:

Referencia:

En algunos orígenes de datos, los valores de datos quedan almacenados en formato alfanumérico sin ningún estándar concreto, con cualquier combinación de componentes, como año, trimestre o mes, y sin ningún delimitador. En un informe clasificado, si estos datos aparecen en orden alfabético, la secuencia no tendrá ningún sentido de negocio. Para garantizar una correcta clasificación, agregación y creación de informes de campos de fecha, WebFOCUS puede convertir las fechas alfanuméricas al formato de fecha estándar de WebFOCUS, mediante un patrón de conversión que se puede especificar en el atributo de archivo máster llamado DATEPATTERN.

Cada elemento del patrón debe tratarse de un carácter constante, que debe aparecer en la entrada real, o una variable que represente a ese componente de fecha. Debe editar el atributo USAGE en el archivo máster, para que tenga en cuenta los elementos de fecha del patrón de fecha. La longitud máxima de la cadena DATEPATTERN es de 64.


Principio de página

x
Referencia: Notas de uso de DATEPATTERN

Principio de página

x
Cómo especificar variables en un patrón de fecha

Cómo:

Los componentes (variables) válidos de fecha son año, trimestre, mes, día y día de la semana. En el patrón de fecha, las variables están entre corchetes (los corchetes no forman parte de la entrada ni de la salida. Tenga en cuenta que, si los datos contienen corchetes, debe usar un carácter de escape en el patrón de fecha, para distinguir entre los corchetes de los datos y los utilizados para enmarcar variables).



x
Sintaxis: Cómo Especificar años en un patrón de fecha
[YYYY]

Especifica un año de cuatro dígitos.

[YYYY]

Especifica un año de cuatro dígitos.

[YY]

Especifica un año de dos dígitos.

[yy]

Especifica un año de dos dígitos que suprime los ceros (por ejemplo, 8 para 2008).

[by]

Especifica un año de dos dígitos con espacios.



x
Sintaxis: Cómo Especificar números de mes en un patrón de fecha
[MM]

Especifica un número de mes de dos dígitos.

[mm]

Especifica un número de mes sin ceros.

[bm]

Especifica el número del mes con espacios.



x
Sintaxis: Cómo Especificar nombres de mes en un patrón de fecha
[MON]

Especifica un nombre del mes de tres caracteres en mayúscula.

[mes]

Especifica un nombre del mes de tres caracteres en minúscula.

[Mon]

Especifica un nombre del mes de tres caracteres, con mayúsculas y minúsculas.

[MONTH]

Especifica un nombre completo del mes, en mayúscula.

[month]

Especifica un nombre completo del mes, en minúscula.

[Mes]

Especifica un nombre completo del mes, con mayúsculas y minúsculas.



x
Sintaxis: Cómo Especificar días del mes en un patrón de fecha
[DD]

Especifica un día del mes, de dos dígitos.

[dd]

Especifica un día del mes sin ceros.

[bd]

Especifica un día del mes con espacios.



x
Sintaxis: Cómo Especificar días julianos en un patrón de fecha
[DDD]

Especifica un día del año, de tres dígitos.

[ddd]

Especifica un día del año sin ceros.

[bdd]

Especifica un día del año con espacios.



x
Sintaxis: Cómo Especificar el día de la semana en un patrón de fecha
[WD]

Especifica un día de la semana de un dígito.

[DAY]

Especifica un nombre del día de tres caracteres en mayúscula.

[day]

Especifica un nombre del día de tres caracteres en minúscula.

[Día]

Especifica un nombre del día de tres caracteres, con mayúsculas y minúsculas.

[WDAY]

Especifica un nombre completo del día, en mayúscula.

[wday]

Especifica un nombre completo del día, en minúscula.

[Wday]

Especifica un nombre completo del día, con mayúsculas y minúsculas.

Para el día de la semana, la propiedad WEEKFIRST define cuál es el día 1.



x
Sintaxis: Cómo Especificar trimestres en un patrón de fecha
[Q]

Especifica un número de trimestre de un dígito (1, 2, 3 o 4).

Para una cadena como Q2 o Q02, emplee constantes antes de [Q], por ejemplo, Q0[Q].


Principio de página

x
Cómo especificar constantes en un patrón de fecha

Puede insertar cualquier valor constante entre las variables.

Si desea insertar un carácter que normalmente puede interpretarse como parte de una variable, emplee la barra invertida como carácter de escape. Por ejemplo:

Para un signo de interrogación individual, use dos comillas simples consecutivas ('').


Principio de página

x
Patrones de fecha de ejemplo

Si la forma de la fecha del origen de datos es CY 2001, el atributo DATEPATTERN es:

DATEPATTERN = 'CY [YYYY] Q[Q]'

Si la forma de la fecha del origen de datos es Ene 31, 01, el atributo DATEPATTERN es:

DATEPATTERN = '[Mon] [DD], [YY]'

Si la forma de la fecha del origen de datos es ABR-06, el atributo DATEPATTERN es:

DATEPATTERN = '[MON]-[YY]'

Si la forma de la fecha del origen de datos es ABR-06, el atributo DATEPATTERN es:

DATEPATTERN = '[MON] - [YY]'

Si la forma de la fecha del origen de datos es ABR '06, el atributo DATEPATTERN es:

DATEPATTERN = '[MON] ''[YY]'

Si la forma de la fecha del origen de datos es ABR [06], el atributo DATEPATTERN es:

DATEPATTERN = '[MON] \[[YY]\]' (or '[MON] \[[YY]]'

Tenga en cuenta que el corchete derecho no tiene que escaparse.



Ejemplo: Cómo clasificar una fecha alfanumérica en vertical

En el ejemplo siguiente, date1.ftm es un archivo secuencial que contiene los datos siguientes:

June 1, '02      
June 2, '02      
June 3, '02      
June 10, '02   
June 11, '02     
June 12, '02     
June 20, '02     
June 21, '02     
June 22, '02     
June 1, '03      
June 2, '03      
June 3, '03      
June 10, '03     
June 11, '03     
June 12, '03     
June 20, '03     
June 21, '03     
June 22, '03     
June 1, '04      
June 2, '04      
June 3, '04      
June 4, '04      
June 10, '04     
June 11, '04     
June 12, '04     
June 20, '04     
June 21, '04     
June 22, '04

En el archivo máster DATE1, el campo DATE1 presenta formatos USAGE y ACTUAL alfanuméricos, de A18 cada uno:

FILENAME=DATE1   , SUFFIX=FIX ,
  DATASET = c:\tst\date1.ftm    , $
  SEGMENT=FILE1, SEGTYPE=S0, $
    FIELDNAME=DATE1, ALIAS=E01, USAGE=A18, ACTUAL=A18, $

La siguiente solicitud clasifica por DATE1 FIELD:

TABLE FILE DATE1
PRINT DATE1 NOPRINT
BY DATE1
ON TABLE SET PAGE NOPAGE
END

La salida indica que las fechas alfanuméricas están clasificadas alfabéticamente, no de forma cronológica:

DATE1
-----
June 1, '02         
June 1, '03         
June 1, '04         
June 10, '02        
June 10, '03        
June 10, '04        
June 11, '02        
June 11, '03        
June 11, '04        
June 12, '02        
June 12, '03        
June 12, '04        
June 2, '02         
June 2, '03         
June 2, '04         
June 20, '02        
June 20, '03        
June 20, '04        
June 21, '02        
June 21, '03        
June 21, '04        
June 22, '02        
June 22, '03        
June 22, '04        
June 3, '02         
June 3, '03         
June 3, '04         
June 4, '04

Para clasificar los datos correctamente, puede añadir un atributo DATEPATTERN al archivo máster, que permite que WebFOCUS convierta la fecha en un campo de fecha WebFOCUS. Además, debe editar el formato USAGE para convertirlo en un formato de fecha WebFOCUS. Para construir el patrón apropiado, debe tener en cuenta todos los componentes de la fecha almacenada. La fecha alfanumérica presenta las siguientes variables y constantes:

El archivo máster aparece a continuación. Observe la adición del atributo DEFCENT para convertir el año de dos dígitos en uno de cuatro:

FILENAME=DATE1   , SUFFIX=FIX ,
  DATASET = c:\tst\date1.ftm    , $
  SEGMENT=FILE1, SEGTYPE=S0, $
    FIELDNAME=DATE1, ALIAS=E01, USAGE=MtrDYY, ACTUAL=A18,
      DEFCENT=20,  
      DATEPATTERN = '[Month] [dd], ''[YY]', $

La emisión de la misma solicitud genera la salida siguiente. Tenga en cuenta que DATE ha quedado convertido en una fecha WebFOCUS en el formato MtrDYY (como está especificado en el formato USAGE):

DATE1
-----
June  1, 2002       
June  2, 2002       
June  3, 2002       
June 10, 2002       
June 11, 2002       
June 12, 2002       
June 20, 2002       
June 21, 2002       
June 22, 2002       
June  1, 2003       
June  2, 2003       
June  3, 2003       
June 10, 2003       
June 11, 2003       
June 12, 2003       
June 20, 2003       
June 21, 2003       
June 22, 2003       
June  1, 2004       
June  2, 2004       
June  3, 2004       
June  4, 2004       
June 10, 2004       
June 11, 2004       
June 12, 2004       
June 20, 2004       
June 21, 2004       
June 22, 2004

WebFOCUS