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