2015年1月15日木曜日

SASにおける日付,時間,日時の概念について。


まずは以下のプログラムと実行結果を見てみましょう。

data DT1;
  format A yymmdd10.  B time8.  C e8601dt19. ;

  A = 0;
  B = 0;
  C = 0;
  output;

  A = 1;
  B = 1;
  C = 1;
  output;
run;


 A
B
 1960-01-01  
  0:00:00  
 1960-01-01T00:00:00  
 1960-01-02  
  0:00:01  
 1960-01-01T00:00:01  


数値「0」と「1」に対して、日付フォーマット、時刻フォーマット、日時フォーマットを割り当てた結果です。


ここから以下の事が分かります。


「日付値」は 1960年1月1日 を起算として、+1すると1日増える。
「時間値」は 0時間0分0秒 を起算として、+1すると1秒増える。
「日時値」は 1960年1月1日 0時間0分0秒 を起算として、+1すると1秒増える。



それで?って感じですが、これを知ってると、日付計算が楽になります。
例えば、ある日時変数があって、その日時の10分後を計算したいとかって場合に、

   「日時変数 + (10分×60秒)」

と計算すれば良いことがわかります。


関数で日時操作する方法もあるので、参考まで。
日付値と時間値から、日時値を作る小技。
日時値に、時間や日を足す簡単な方法。

0 件のコメント:

コメントを投稿