DATECVT - 日付のフォーマットを変更

DATECVT 関数は、任意の標準日付またはレガシー日付フォーマットのフィールド値を、任意の標準日付またはレガシー日付フォーマットの日付 (基準日からのオフセット) に変換します。無効なフォーマットを指定すると、DATECVT は 0 (ゼロ) またはブランクを返します。

DATECVT は、最適化およびコンパイルを無効にします。

注意:この関数を呼び出す代わりに、単純な割り当てを使用することができます。

日付フォーマットを変換

DATECVT(date, 'in_format', output)

説明

date

日付

移動する日付です。無効な日付を指定すると、DATECVT は 0 (ゼロ) を返します。変換を実行する際、レガシー日付は、このフィールドに指定された DEFCENT および YRTHRESH パラメータの設定に従います。

in_format

文字

日付のフォーマットです。フォーマットは一重引用符 (') で囲みます。次のいずれかです。

  • 標準、非レガシー、または日付フォーマット (例、YYMD、YQ、M、DMY、JUL)。
  • レガシー日付フォーマット (例、I6YMD、A8MDYY)。
  • 非日付フォーマット (例、I8、A6)。YYMD フィールドの基準日 (1900/12/31) からのオフセットとして in_formart で指定した非日付フォーマットです。
output

文字

出力フォーマットです。フォーマットは一重引用符 (') で囲みます。フォーマットが定義されたフィールドを指定することもできます。次のいずれかです。

  • 標準、非レガシー、または日付フォーマット (例、YYMD、YQ、M、DMY、JUL)。
  • レガシー日付フォーマット (例、I6YMD、A8MDYY)。
  • 非日付フォーマット (例、I8、A6)。このフォーマットタイプを使用すると、DATECVT は日付を完全構成要素の日付に変換し、指定されたフォーマットの整数値として返します。

日付フォーマットを YYMD から DMY に変換

DATECVT 関数は、19991231 を 311299 に変換し、結果を CONV_FIELD に格納します。

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

または

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

レガシー日付を日付フォーマットに変換

DATECVT 関数は、HIRE_DATE のフォーマットを I6YMD レガシー日付フォーマットから 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

出力結果は次のとおりです。

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