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

Como:

Linguagens Disponíveis: Reporting, Maintain

As funções DA convertem uma data de legado no número de dias entre ela e a data base (31 de dezembro de 1899). Ao converter uma data no número de dias, você pode adicionar e subtrair datas e calcular os intervalos entre elas ou adicionar ou subtrair números das datas para obter novas datas.

Há seis funções DA, cada um aceita uma data em um formato diferente.


Topo da página

x
Sintaxe: Como Converter uma Data em um Inteiro
						function(indate, output)

onde:

Função

É um dos seguintes procedimentos:

DADMY converte uma data no formato dia-mês-ano.

DADYM converte uma data no formato dia-ano-mês.

DAMDY converte uma data no formato mês-dia-ano.

DAMYD converte uma data no formato mês-ano-dia.

DAYDM converte uma data no formato ano-dia-mês.

DAYMD converte uma data no formato ano-mês-dia.

indate

I6xxx ou P6xxx, onde xxx corresponde à função DAxxx que você está utilizando.

É a data a ser convertida ou o nome de um campo que contém a data. A data é truncada em um inteiro antes da conversão. Se indate for um literal numérico, insira somente os últimos dois dígitos do ano; a função assume o componente século. Se a data for inválida, a função retornará um 0.

saída

Inteiro

É o nome do campo que contém o resultado ou o formato do valor de saída posto entre aspas simples. O formato da data obtido depende da função.



Exemplo: Como Converte Datas e Calcular a Diferença entre Elas

O DAYMD converte os campos DAT_INC e HIRE_DATE para o número de dias desde 31 de dezembro de 1899 e o número menor é então subtraído ao número maior:

TABLE FILE EMPLOYEE
PRINT DAT_INC AS 'RAISE DATE' AND COMPUTE
DAYS_HIRED/I8 = DAYMD(DAT_INC, 'I8') - DAYMD(HIRE_DATE, 'I8');
BY LAST_NAME BY FIRST_NAME
IF DAYS_HIRED NE 0
WHERE DEPARTMENT EQ 'PRODUCTION';
END

A saída é:

LAST_NAME     FIRST_NAME  RAISE DATE  DAYS_HIRED
---------     ----------  ----------  ----------
IRVING        JOAN          82/05/14         130
MCKNIGHT      ROGER         82/05/14         101
SMITH         RICHARD       82/05/14         130
STEVENS       ALFRED        82/01/01         578
                            81/01/01         213

Information Builders