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.
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. |
CHGDAT('in_display_options','out_display_options',date_string,output)
onde:
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.
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.
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.
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.
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 |