GREGDT: Como Converter do formato Juliano para o Gregoriano

Como:

Referência:

Linguagens Disponíveis: Reporting, Maintain

A função GREGDT converte uma data em formato juliano (ano-dia) em formato gregoriano (ano-mês-dia).

Uma data no formato juliano é um número de cinco ou sete dígitos. Os primeiros dois ou quatro dígitos representam o ano. Os três últimos dígitos representam o número de dias, contados a partir de 1 de janeiro. Por exemplo, janeiro 1, 1999 no formato juliano é representado por 99001 ou 1999001; junho 21, 2004, por sua vez, seria 2004173.


Topo da página

x
Referência: Definições DATEFNS para GREGDT

GREGDT converte uma data juliana no formato YMD ou YYMD utilizando as definições de parâmetros DEFCENT e YRTHRESH para determinar o século, caso necessário. GREGDT obtém uma data como a seguir:

Configuração DATEFNS

Formato I6 ou I7

Formato I8 ou Maior

ATIVADO

AMD

AAMD

DESLIGADO

YMD

YMD



x
Sintaxe: Como Converter do formato Juliano para o Gregoriano
GREGDT(indate, output)

onde:

indate

I5 ou I7

É a data juliana, que se encontra truncada em um número inteiro antes da conversão. Cada valor deve possuir um número de cinco ou sete dígitos após a truncamento. Se a data for inválida, a função retornará um 0 (zero).

saída

I6, I8, I6YMD ou I8YYMD

É o nome do campo que contém o resultado ou o formato do valor de saída posto entre aspas simples.



Exemplo: Como Converter do formato Juliano para o Gregoriano

GREGDT converte o campo JULIAN para o formato YYMD (gregoriano). Ele determina o século usando as configurações padrão dos parâmetros DEFCENT e YRTHRESH.

TABLE FILE EMPLOYEE
PRINT HIRE_DATE AND
COMPUTE JULIAN/I5 = JULDAT(HIRE_DATE, JULIAN); AND
COMPUTE GREG_DATE/I8 = GREGDT(JULIAN, 'I8');
BY LAST_NAME BY FIRST_NAME
WHERE DEPARTMENT EQ 'PRODUCTION';
END

A saída é:

LAST_NAME     FIRST_NAME  HIRE_DATE  JULIAN  GREG_DATE
---------     ----------  ---------  ------  ---------
BANNING       JOHN         82/08/01   82213   19820801
IRVING        JOAN         82/01/04   82004   19820104
MCKNIGHT      ROGER        82/02/02   82033   19820202
ROMANS        ANTHONY      82/07/01   82182   19820701
SMITH         RICHARD      82/01/04   82004   19820104
STEVENS       ALFRED       80/06/02   80154   19800602

Information Builders