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

Como:

Referência:

Linguagens Disponíveis: Reporting, Maintain

A função CHGDAT reorganiza as partes referentes ao ano, mês e dia de uma string de caracteres de entrada representando uma data. Também é possível converter a string de entrada de representação de data longa para curta e vice e versa. A representação longa contém todos os três componentes de data: ano, mês e dia. A representação curta omite um ou dois componentes, como o ano, mês ou dia. As strings de data de entrada e saída são descritas por opções de exibição que especificam a ordem dos componentes de data (ano, mês e dia) na string de data e se dois ou quatro dígitos são utilizados para o ano (por exemplo, 04 ou 2004). CHGDAT lê uma string de caracteres de data de entrada e cria uma string de caracteres de data de saída que representa a mesma data de forma diferente.

observação: CHGDAT exige uma string de caracteres de data como entrada, não uma data. Seja a entrada um data padrão ou de legado, converta-a em uma string de caracteres de data (utilizando as funções EDIT ou DATECVT, por exemplo) antes de aplicar CHGDAT.

A ordem dos componentes de data na string de caracteres de data está descrita pelas opções de exibição contidas nos caracteres a seguir na ordem em que você escolher:

Caractere

Descrição

D

Dia do mês (01 a 31).

M

Mês do ano (01 a 12).

Y[Y]

Ano. Y indica um ano com dois dígitos (como 94). YY indica um ano com quatro dígitos (como 1994).

Para escrever por extenso em vez de utilizar um número na string resultante, anexe um dos seguintes caracteres às opções de exibição para a string resultante:

Caractere

Descrição

T

Exibe o mês com uma abreviação com três letras.

X

Exibe o nome completo do mês.

As opções de exibição pode consistir de até cinco caracteres de exibição. Qualquer caractere diferente das opções de exibição são ignorados.

Por exemplo: As opções de exibição 'DMYY' especificam que a string de data deve começar com um dia com dois dígitos, mês com dois dígitos e ano com quatro dígitos.

Observação: As opções de exibição não são formatos de data.



x
Referência: Conversão de Curta para Longa

Se você estiver convertendo uma data de representação curta para longa (por exemplo, de ano-mês para ano-mês-dia), a função fornece a porção da data ausente na representação curta, como ilustrado na tabela abaixo:

Porção da Data Ausente

Porção Fornecida por Função

Dia (por exemplo, de YM para YMD)

Último dia do mês.

Mês (por exemplo, de Y para YM)

Último mês do ano (Dezembro).

Ano (por exemplo, de MD para YMD)

O ano de 99.

Como converter o ano de dois para quatro dígitos (por exemplo, de YMD para YYMD)

Se DATEFNS=ON, o século será determinado pela janela de 100 anos definida o DEFCENT e YRTHRESH.

Consulte Como Personalizar Seu Ambiente em Como Desenvolver Aplicativos de Relatório ou Como Trabalhar com Datas com Séculos Diferentes no arquivo iBase para obter detalhes sobre DEFCENT e YRTHRESH.

Se DATEFNS=OFF, o ano 19xx é fornecido, onde xx são os dois últimos dígitos do ano.



x
Sintaxe: Como Altere a String de Exibição da Data
CHGDAT('in_display_options','out_display_options',date_string,output)

onde:

'in_display_options'

A1 a A5

É uma série de até cinco opções de exibição que descrevem o layout de date_string. Estas opções podem ser armazenadas em um campo alfanumérico ou fornecido como literal postos entre aspas simples.

'out_display_options'

A1 a A5

É uma série de até cinco opções de exibição que descrevem o layout da string de data convertida. Estas opções podem ser armazenadas em um campo alfanumérico ou fornecido como literal postos entre aspas simples.

date_string

A2 a A8

É a string de caracteres da data de entrada com componentes de data na ordem especificada por in_display_options.

Observe que se a data original estiver em formato numérico, você deve convertê-la em uma string de caracteres de data. Se date_string não representa corretamente a data (data inválida), a função exibe espaços em branco.

saída

um xx, onde xx é um número de caracteres alto o suficiente para caber na string de data especificada por out_display_options. A17 é alto o suficiente para caber na string de data mais longa.

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

Observação: Já que CHGDAT utiliza uma string de dados (e não uma data) e obtém uma string de dados com até 17 caracteres, utilize as funções EDIT ou DATECVT ou qualquer outra forma para converter a data em uma string de caracteres de data ou vice e versa.



Exemplo: Como Converter a Exibição de Data de YMD para MDYYX

A função EDIT altera HIRE_DATE do formato numérico para o alfanumérico. O CHGDAT então converte cada valor em ALPHA_HIRE da exibição dos componentes como YMD para MDYYX e armazena o resultado em HIRE_MDY com o formato A17. A opção X no valor de saída exibe o nome completo do mês.

TABLE FILE EMPLOYEE
PRINT HIRE_DATE AND COMPUTE
ALPHA_HIRE/A17 = EDIT(HIRE_DATE); NOPRINT AND COMPUTE
HIRE_MDY/A17 = CHGDAT('YMD', 'MDYYX', ALPHA_HIRE, 'A17');
BY LAST_NAME BY FIRST_NAME
WHERE DEPARTMENT EQ 'PRODUCTION';
END

A saída é:

LAST_NAME     FIRST_NAME  HIRE_DATE  HIRE_MDY
---------     ----------  ---------  --------
BANNING       JOHN         82/08/01  AUGUST 01 1982
IRVING        JOAN         82/01/04  JANUARY 04 1982
MCKNIGHT      ROGER        82/02/02  FEBRUARY 02 1982
ROMANS        ANTHONY      82/07/01  JULY 01 1982
SMITH         RICHARD      82/01/04  JANUARY 04 1982
STEVENS       ALFRED       80/06/02  JUNE 02 1980

Information Builders