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
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.
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. .
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
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 |