SASで日付、時間を扱う

「SASで日付・時間を扱う」記事のタイトル SAS

SASで日付や時間をどのように扱う?

SASでは、日付や時間、日時といった値を数値として管理しています。

具体的には、

  • SAS日付値 : 1960/1/1を0とし、1日ごとに1増加する値。
  • SAS時間値 : 0:00:00を0とし、1秒ごとに1増加する値。
  • SAS日時値 : 1960/1/1 0:00:00を0とし、1秒ごとに1増加する値。

これらは負の値を取ることで、1960年以前の日時等を表現することもできます。

また、表示フォーマットを変更することで数値から見やすい形に変形することもできます。

もちろん変形しなくても数値として足し算や引き算をして、時間の差などを求めることもできます!

datetime、date、time関数

  • datetime関数:現在の日時値を返す関数。
  • date関数:現在の日付値を返す関数。
  • time関数:現在の時間値を返す関数。

使用例

これを実行すると、以下のようになります。

フォーマットの指定によって、見え方が変わっているのが分かります。

年月等を返す関数

もっと見やすくするために、ここでは年や月を返してくれる関数を紹介します。

関数引数返し値
Datepart日時値日付値
Timepart日時値時間値
Year日付値
Month日付値
Day日付値
Weekday日付値曜日(日:0 月:1 … 土:7)
Week日付値週(その年の何週目か)
Hour日時値or時間値
Minute日時値or時間値
Second日時値or時間値

使用例

出力はこのようになります。

少し小さいですが、このようになります。

フォーマットhhmmss8.とyymmdd8.を使ってみる

このフォーマットで時間を変形してあげることで、時間を足したり引いたりすることができるようになります。

試しに今日が残り何秒か、今年が残り何日かを算出するプログラムを書いてみましょう。先ほどのプログラムに、以下のものを書き足してみます。

すると、このように、計算ができていることがわかります。

タイトルとURLをコピーしました