2016年5月2日月曜日

日付から年や月などを取り出す




日付値から 「年,月日」 を取り出す

data DT1;
  format A yymmdd10.;
  A = '05jan2014'd;
  A1 = year(A);      * 年 ;
  A2 = month(A);   * 月 ;
  A3 = day(A);        * 日 ;
run;

 A
A1
  A2   
  A3   
 2014-01-05  
  2014  
    1 
    5



日時値から 「年秒」 を取り出す


日時値から年・月・日を取り出すには、DATEPART関数で日付値に変換してからYEAR関数等を使用します

当然ながら、時・分・秒を取り出す場合は、日時のままでok (DATEPART関数は不要)

data DT2;
  format A e8601dt19.;
  A = '05jan2014 10:20:8'dt;
  A1 = year( datepart(A) );      * 年 ;
  A2 = month( datepart(A) );   * 月 ;
  A3 = day( datepart(A) );       * 日 ;
  A4 = hour(A);                      * 時 ;
  A5 = minute(A);                  * 分 ;
  A6 = second(A);                  * 秒 ;
run;

A
A1
 A2 
 A3 
 A4 
 A5  
 A6 
 2014-01-05T10:20:08 
  2014 
   1 
   5
  10 
  20
   8



1つ気をつけた方が良いのは、日時にミリ秒を含む場合。

注意:ミリ秒を含む場合

data DT3;
  format A e8601dt23.3;
  A = '05jan2014 10:20:8.721'dt;
  A1 = second(A);
run;

 A
A1
 2014-01-05T10:20:08.721 
  8.72099995・・・以下省略  

秒にミリ秒を含める場合は、「秒+(ミリ秒÷1000)」って感じになると思いますが、
SECOND関数で取得したミリ秒部分(小数点以下)に誤差?が出てしまうのでご注意ください。


0 件のコメント:

コメントを投稿