Cómo usar las funciones de fechas legacy

En esta sección:

Las funciones de fechas legacy fueron creadas para su uso con fechas en formato de número entero, decimal empaquetado o alfanumérico.

Para más detalles acerca de cada función de fechas legacy, consulte:

AYM: Cómo añadir o restar meses

AYMD: Cómo añadir o restar días

CHGDAT: Cómo cambiar la visualización de fecha

Funciones DA: Cómo convertir una fecha legacy en un número entero

DMY, MDY, YMD: Cómo calcular la diferencia entre dos fechas

DOWK y DOWKL: Cómo hallar el día de la semana

Funciones DT: Cómo convertir un número entero en una fecha

GREGDT: Cómo pasar del formato juliano al formato gregoriano

JULDAT: Cómo convertir del formato gregoriano al formato juliano

YM: Cómo calcular meses transcurridos


Principio de página

x
Cómo usar versiones anteriores de las funciones de fechas legacy

Cómo:

Las funciones de fechas descritas en esta sección son de tipo legacy. Se crearon para ser utilizadas con fechas en formato alfanumérico o de número entero. Su uso ya no se recomienda para la manipulación de fechas. Es preferible utilizar las funciones de fechas estándar o las de fecha-hora.

Todas las funciones de fechas legacy son compatibles con las fechas del año 2000 y posteriores. Puede que las versiones anteriores de estas funciones no funcionen correctamente con fechas posteriores al 31 diciembre 1999. Sin embargo, es posible que, en algunos casos, desee usar una versión anterior de una función; por ejemplo, si no utiliza las fechas de los años 2000. Puede desactivar la versión actual mediante el parámetro DATEFNS.



x
Sintaxis: Cómo Activar funciones anteriores de fecha legacy
SET DATEFNS = {ON|OFF}

donde:

ON

Activa la función compatible con las fechas de 2000 y posteriores. ON es el valor predeterminado.

OFF

Desactiva una función compatible con las fechas de 2000 y posteriores.


Principio de página

x
Cómo usar fechas con años de dos y cuatro dígitos

Las funciones de fechas legacy aceptan los años de dos o cuatro dígitos. Puede usar los años de cuatro dígitos que indican el siglo, como 2000 o 1900, si sus formatos están especificados como I8YYMD, P8YYMD, D8YYMD, F8YYMD o A8YYMD. Los años de dos dígitos pueden usar los parámetros DEFCENT y YRTHRESH para asignar valores de siglo, si el campo tiene una longitud de seis (por ejemplo, I6YMD). Para información sobre estos parámetros, consulte Cómo personalizar su entorno en Cómo desarrollar aplicaciones de informes.



Ejemplo: Cómo usar años de cuatro dígitos

La función EDIT crea fechas con años de cuatro dígitos. Las funciones JULDAT y GREGDT se encargan de convertir estas fechas a los formatos juliano y gregoriano.

DEFINE FILE EMPLOYEE
DATE/I8YYMD = EDIT('19'|EDIT(HIRE_DATE));
JDATE/I7 = JULDAT(DATE, 'I7');
GDATE/I8 = GREGDT(JDATE, 'I8');
END
TABLE FILE EMPLOYEE
PRINT DATE JDATE GDATE
END

La salida es:

      DATE    JDATE     GDATE
      ----    -----     -----
1980/06/02  1980154  19800602
1981/07/01  1981182  19810701
1982/05/01  1982121  19820501
1982/01/04  1982004  19820104
1982/08/01  1982213  19820801
1982/01/04  1982004  19820104
1982/07/01  1982182  19820701
1981/07/01  1981182  19810701
1982/04/01  1982091  19820401
1982/02/02  1982033  19820202
1982/04/01  1982091  19820401
1981/11/02  1981306  19811102
1982/04/01  1982091  19820401
1982/05/15  1982135  19820515


Ejemplo: Cómo usar años de dos dígitos

La función AYMD devuelve una fecha de ocho dígitos, cuando el formato de entrada tiene un formato de fecha legacy de seis dígitos. Puesto que DEFCENT es 19 y YRTHRESH es 83, los valores de años entre 83 y 99 se interpretan como de 1983 a 1999, mientras que los valores entre 00 y 82 se tratan como de 2000 a 2082.

SET DEFCENT=19, YRTHRESH=83
 
DEFINE FILE EMPLOYEE
NEW_DATE/I8YYMD = AYMD(EFFECT_DATE, 30, 'I8');
END
 
TABLE FILE EMPLOYEE
PRINT EFFECT_DATE NEW_DATE BY EMP_ID
END

La salida es:

EMP_ID     EFFECT_DATE    NEW_DATE
------     -----------    --------
071382660
112847612
117593129     82/11/01  2082/12/01
119265415
119329144     83/01/01  1983/01/31
123764317     83/03/01  1983/03/31
126724188
219984371
326179357     82/12/01  2082/12/31
451123478     84/09/01  1984/10/01
543729165
818692173     83/05/01  1983/05/31

WebFOCUS