2014年12月4日木曜日

日時値から、日付値または時間値を抽出する



わりとこの質問を沢山もらうので、紹介したいと思います。


日時値に対して、DATEPART関数で日付値を抽出し、TIMEPART関数で時間値を抽出します。

data DT1;
   format DT yymmdd10. TM time5.;

   * 適当な日時値を作成 ;
   DTM  = input("2014/07/01 10:20:00", ymddttm.);

   * 日付値を抽出 ;
   DT   = datepart( DTM ) ;

   * 時間値を抽出 ;
   TM   = timepart( DTM ) ;

   keep DT TM;
run;


 DT 
TM 
  2014-07-01  
  10:20  


3 件のコメント:

  1. はじめまして。色々調べてるうちにここへ辿り着きました。もしよろしければ、1点ご教示いただきたいのですが、現在timeという変数名で、10人の起床時間が記入されています(例えば7:20など)。このうち、時間と分を別々に抽出してくる方法は存在しますか?お忙しいところ大変恐縮ですが、アドバイスいただけると幸いです。

    返信削除
    返信
    1. コメントありがとうございます。
      時間値から、時間と分を数値として取り出すには、hour関数とminute関数が使えます。

      data test;
      tm='7:20:00't;
      h=hour(tm);
      m=minute(tm);
      run;

      上記の例のような感じで、やりたいことあってますでしょうか。

      削除
  2. ご返信ありがとうございます。
    頂いたコメントをもとに、時間と分だけをとりだした変数を作成できました!
    お忙しいところ、ご対応いただき本当にありがとうございました。

    返信削除