# DS2関数(日付と時間)

# 「月, 日, 年」をそれぞれ引数で受け取り、SAS日付値に変換する

<details><summary>MDY関数</summary>

``` sas
date_val = mdy(mm, dd, yy);
```

<https://documentation.sas.com/doc/ja/pgmsascdc/v_061/ds2ref/n15zqld58pd186n1djkzia6oprza.htm>

</details>

# SAS日時値からSAS日付値を取得する

<details><summary>DATEPART関数</summary>

``` sas
sas_date = DATEPART(sas_datetime);
```

<https://documentation.sas.com/doc/ja/pgmsascdc/v_061/ds2ref/n16yabgpgl3slnn1uh9ipw6qlrdo.htm>

</details>

# 現在の日時を取得する

<details><summary>DATETIME関数</summary>

``` sas
sas_datetime = DATETIME();
```

<https://documentation.sas.com/doc/ja/pgmsascdc/v_061/ds2ref/p037ecmn1cv535n1op7wm4qnza7a.htm>

</details>

# SAS日時値から、日付や時間を加減算する

<details><summary>INTNX関数</summary>

``` sas
INTNX(interval, target_value, increment)
```

``` sas
/* 使用例 */
dcl double date_after6week having format yymmdds10.;
input_date = inputn('20250831', 'yymmdd8.');
date_after6week = intnx('week', input_date, 6); /* 6週間後の日付を取得する */
put date_after6week=; /* "2025/10/12"が出力される */
```

<https://documentation.sas.com/doc/ja/pgmsascdc/v_061/ds2ref/n1mtvizfg1y0g9n1wslqgjxseh0i.htm>

</details>

# 2つのSAS日時値の間隔を取得する

<details><summary>INTCK関数</summary>

``` sas
INTCK(interval, startDate, endDate, <任意>method)
```

``` sas
proc ds2;
  data _null_;
    method run();
      dcl double startDate endDate mon day;
   
      startDate = inputn('2023/12/11', 'yymmdd10.');
      endDate = inputn('2025/12/01', 'yymmdd10.');

      mon = INTCK('MONTH', startDate, endDate, 'CONTINUOUS');      
      put mon=;

      day = INTCK('DAY', startDate, endDate, 'CONTINUOUS');      
      put day=;
    end;
  enddata;
run;
quit;

```


**interval**

|計算単位|指定する文字列|
|-|-|
|日|DAY|
|週|WEEK|
|月|MONTH|
|四半期|QTR|
|年|YEAR|
|秒|SECOND|
|分|MINUTE|
|時|HOUR|

**method**

|指定する文字列|内容|
|-|-|
|CONTINUOUS, C, CONT|連続した期間を測定単位に指定します。|
|DISCRETE, D, DISC|連続しない期間を測定の単位に指定します。DISCRETEメソッドは、間隔の境界(月末など)を数えます。|

<https://documentation.sas.com/doc/ja/pgmsascdc/v_061/ds2ref/n096g3nwx05g7wn161ax2rdqmlfn.htm>

</details>