DATECVT: Como Converter o Formato de uma Data

Como:

Linguagens Disponíveis: Reporting, Maintain

A função DATECVT converte o valor do campo de qualquer formato de data padrão ou de data de legado em um formato de data (desvio da data base) no formato de data padrão ou de legado desejado. Se você fornecer um formato inválido, DATECVT obterá um zero ou um espaço.

DATECVT desativa a otimização e compilação.

Observação: Você pode utilizar uma atribuição simples em vez de chamar esta função.


Topo da página

x
Sintaxe: Como Converter um formato de data
DATECVT(date, 'in_format', output)

onde:

Data

Data

É a data a ser convertida. Se fornecer uma data inválida, DATECVT retornará zero. Quando a conversão é realizada, uma data legada obedece a quaisquer configurações de parâmetro DEFCENT e YRTHRESH fornecidas para esse campo.

in_format

Alfanumérico

É o formato da data entre aspas simples. É um dos seguintes:

  • Um formato da data que não é de legado (por exemplo, YYMD, YQ, M, DMY, JUL).
  • Um formato da data (por exemplo, I6YMD ou A8MDYY).
  • Um formato que não é de data (como I8 ou A6). Um formato que não é de data em in_format funciona como um deslocamento da data base de um campo YYMD (12/31/1900).
saída

Alfanumérico

É o formato de saída colocado entre aspas simples ou um campo contendo o formato. É um dos seguintes:

  • Um formato da data que não é de legado (por exemplo, YYMD, YQ, M, DMY, JUL).
  • Um formato da data (por exemplo, I6YMD ou A8MDYY).
  • Um formato que não é de data (como I8 ou A6). Este tipo de formato faz com que DATECVT converta a data em uma data comcomponentes completos e a exiba como um número inteiro no formato fornecido.


Exemplo: Como Converter uma Data YYMD em DMY

DATECVT converte 19991231 em 311299 e armazena o resultado em CONV_FIELD:

CONV_FIELD/DMY = DATECVT(19991231, 'I8YYMD', 'DMY');

ou

ONV_FIELD/DMY = DATECVT('19991231', 'A8YYMD', 'DMY');


Exemplo: Como Converter uma Data de legado em Formato de Data (Reporting)

DATECVT converte HIRE_DATE do formato de data de legado I6YMD no formato de data YYMD:

TABLE FILE EMPLOYEE
PRINT FIRST_NAME AND HIRE_DATE AND COMPUTE
NEW_HIRE_DATE/YYMD = DATECVT(HIRE_DATE, 'I6YMD', 'YYMD');
BY LAST_NAME
WHERE DEPARTMENT EQ 'MIS';
END

A saída é:

LAST_NAME     FIRST_NAME   HIRE_DATE  NEW_HIRE_DATE
---------     ----------   ---------  -------------
BLACKWOOD     ROSEMARIE    82/04/01   1982/04/01
CROSS         BARBARA      81/11/02   1981/11/02
GREENSPAN     MARY         82/04/01   1982/04/01
JONES         DIANE        82/05/01   1982/05/01
MCCOY         JOHN         81/07/01   1981/07/01
SMITH         MARY         81/07/01   1981/07/01

Information Builders