Sas-dates-times

提供:Dev Guides
移動先:案内検索

SAS-日付と時刻

IN SAS日付は、数値の特殊なケースです。 1日には、1960年1月1日から始まる特定の数値が割り当てられます。 この日付には日付値0が割り当てられ、次の日付には日付値1などが割り当てられます。 この日付までの前の日は、-1、-2などで表されます。 このアプローチにより、SASは将来の任意の日付と過去の任意の日付を表すことができます。

SASは、ソースからデータを読み取ると、読み取られたデータを、日付形式で指定された特定の日付形式に変換します。 日付値を格納する変数は、必要な適切な入力形式で宣言されます。 出力日付は、出力データ形式を使用して表示されます。

SAS日付情報

以下に示すように、特定の日付入力形式を使用して、ソースデータを適切に読み取ることができます。 入力形式の最後の数字は、入力形式を使用して完全に読み取られる日付文字列の最小幅を示します。 幅を小さくすると、誤った結果が得られます。 SAS V9には、任意の日付入力を処理できる一般的な日付形式* anydtdte15。*があります。

Input Date Date width Informat
03/11/2014 10 mmddyy10.
03/11/14 8 mmddyy8.
December 11, 2012 20 worddate20.
14mar2011 9 date9.
14-mar-2011 11 date11.
14-mar-2011 15 anydtdte15.

以下のコードは、さまざまな日付形式の読み取りを示しています。 出力値にフォーマットステートメントを適用していないため、すべての出力値は単なる数字であることに注意してください。

DATA TEMP;
INPUT @1 Date1 date11. @12 Date2 anydtdte15. @23 Date3 mmddyy10.   ;
DATALINES;
02-mar-2012 3/02/2012 3/02/2012
;
PROC PRINT DATA = TEMP;
RUN;

上記のコードが実行されると、次の出力が得られます。

date_time_1

SAS日付出力形式

読み取り後の日付は、ディスプレイの必要に応じて別の形式に変換できます。 これは、日付タイプの形式ステートメントを使用して実現されます。 それらは入力形式と同じ形式を取ります。

以下の例では、日付は1つの形式で読み取られますが、別の形式で表示されます。

DATA TEMP;
INPUT  @1 DOJ1 mmddyy10. @12 DOJ2 mmddyy10.;
format  DOJ1 date11.  DOJ2 worddate20. ;
DATALINES;
01/12/2012 02/11/1998
;
PROC PRINT DATA = TEMP;
RUN;

上記のコードが実行されると、次の出力が得られます。

date_time_2