Como Utilizar Funções de Data de Legado

Nesta seção:

As funções de data de legado foram criadas para uso com datas em formato inteiro, decimal compactado ou alfanumérico.

Para obter informações detalhadas sobre cada função de data de legado, consulte:

AYM: Como Adicionar ou Subtrair Meses

AYMD: Como Adicionar ou Subtrair Dias

CHGDAT: Como Alterar a Forma como a String de Data É Exibida

Funções DA: Como Converter uma Data de Legado em um Inteiro

DMY, MDY, YMD: Como Calcular a Diferença entre Duas Datas

DOWK e DOWKL: Como Encontrar o Dia da Semana

Funções DT: Como Converter um Número Inteiro em uma Data

GREGDT: Como Converter do formato Juliano para o Gregoriano

JULDAT: Como Converter do formato Gregoriano para o Juliano

YM: Como Calcular os Meses Decorridos


Topo da página

x
Como Utilizar Versões Antigas das Funções de Data de Legado

Como:

As funções descritas nesta seção são funções de data de legado. Eles foram criados para uso com datas no formato inteiro ou alfanumérico. Elesnão são mais recomendados para manipulação de datas. As funções padrão de data e data-hora são preferidas.

Todas as funções de data de legado oferecem suporte para datas a partir do ano 2000. As versões antigas destas funções podem não funcionar corretamente com datas após 31 de dezembro de 1999. No entanto, em alguns casos, você pode desejar utilizar a versão antiga de uma função (por exemplo, caso não utilize datas a partir do ano 2000). É possível "desativar" a versão atual com o parâmetro DATEFNS.



x
Sintaxe: Como Ativar as Funções de Data de Legado Antigas
SET DATEFNS = {ON|OFF}

onde:

ON

Ativa a função que oferece suporte para datas a partir do ano 2000. ON é o valor padrão.

DESLIGADO

Desativa uma função que oferece suporte para datas a partir do ano 2000.


Topo da página

x
Como Utilizar Datas com Anos com Dois ou Quatro Dígitos

Funções de data de legado aceitam datas com anos com dois ou quatro dígitos. Anos com quatro dígitos que exibem o século, como 2000 ou 1900, podem ser utilizados caso seus formatos sejam especificados como I8YYMD, P8YYMD, D8YYMD, F8YYMD ou A8YYMD. Anos de dois dígitos podem utilizar os parâmetros DEFCENT e YRTHRESH para atribuir valores de século caso o campo possua um comprimento de seis (por exemplo, I6YMD). Para obter informações sobre estes parâmetros, consulte Como Personalizar Seu Ambiente em Como Desenvolver Aplicativos de Relatório. .



Exemplo: Como Utilizar Anos de Quatro Dígitos

A função EDIT cria datas com anos com quatro dígitos. As funções JULDAT e GREGDT convertem estas datas para os formatos juliano e 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

A saída é:

      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


Exemplo: Como Utilizar Anos com Dois Dígitos

A função AYMD exibe uma data de oito dígitos quando o argumento de entrada possui um formato de data de legado de seis dígitos. DEFCENT é 19 e YRTHRESH é 83, portanto, valores de anos de 83 a 99 são interpretados como 1983 a 1999, e valores de anos de 00 a 82 são interpretados como 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

A saída é:

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

Information Builders