すぐに使える!WebFOCUS日付計算チートシート
「日付の計算チートシート」は、WebFOCUSで日付・年月・年・会計年度を扱う際の代表的な計算式を、コピペで使える形でまとめたリファレンスです。
WebFOCUSでは同じ結果を得るための関数や方法が複数あり、要件に応じて柔軟に実装できます。
本ページでは、その中から代表的な「推奨パターン」を一覧化ししています。
概要
本ページでは、利用するデータや方法によって複数のパターンを記載しており、次の2系統に大きく分かれています。
- システム日付を起点とした「変数(文字列)」パターン
DT_CURRENT_DATE() を起点に、-SET で変数として文字列を返す想定のパターンです。
- 項目日付を起点とした「項目(日付型)」パターン
TIME_DATE などの項目を起点に、DEFINE で日付型・日付時間型の項目として返す想定のパターンです。
-SET で変数に格納する例と、DEFINE で項目として定義するサンプルプロシジャを用意し、実際にテストしながら確認できるようになっています。
一覧としては、以下のような値をカバーしています。
- 当日/前日/前々日/翌日/翌々日
- 当月初日・当月末日、前月初日・前月末日、翌月初日・翌月末日
- 当月/前月/前々月/翌月/翌々月、前年同月/翌年同月
- 当年/前年/前々年/翌年/翌々年
- 会計年度初月・末月、前半期初月・末月、後半期初月・末月、当年度/前年度/前々年度/翌年度/翌々年度
計算式
システム日付を起点とした「変数(文字列)」パターン
①システム日付「DT_CURRENT_DATE()」を起点として、年月日を返す計算
| 意味 | 計算式 | 結果例(2025/01/27に実行) |
|---|---|---|
| 本日 | DT_FORMAT(DT_CURRENT_DATE(),’HYYMD’) | 2025/01/27 |
| 昨日 | DT_FORMAT(DTADD(DT_CURRENT_DATE(),DAY,-1),’HYYMD’) | 2025/01/26 |
| 一昨日 | DT_FORMAT(DTADD(DT_CURRENT_DATE(),DAY,-2),’HYYMD’) | 2025/01/25 |
| 明日 | DT_FORMAT(DTADD(DT_CURRENT_DATE(),DAY, 1),’HYYMD’) | 2025/01/28 |
| 明後日 | DT_FORMAT(DTADD(DT_CURRENT_DATE(),DAY, 2),’HYYMD’) | 2025/01/29 |
| 今月初日 | DT_FORMAT(DTRUNC(DT_CURRENT_DATE(),MONTH,1),’HYYMD’) | 2025/01/01 |
| 今月末日 | DT_FORMAT(DTRUNC(DT_CURRENT_DATE(),MONTH_END,1),’HYYMD’) | 2025/01/31 |
| 先月初日 | DT_FORMAT(DTRUNC(DTADD(DT_CURRENT_DATE(),MONTH,-1),MONTH,1),’HYYMD’) | 2024/12/01 |
| 先月末日 | DT_FORMAT(DTRUNC(DTADD(DT_CURRENT_DATE(),MONTH,-1),MONTH_END,1),’HYYMD’) | 2024/12/31 |
| 来月初日 | DT_FORMAT(DTRUNC(DTADD(DT_CURRENT_DATE(),MONTH,1),MONTH,1),’HYYMD’) | 2025/02/01 |
| 来月末日 | DT_FORMAT(DTRUNC(DTADD(DT_CURRENT_DATE(),MONTH,1),MONTH_END,1),’HYYMD’) | 2025/02/28 |
②システム日付「DT_CURRENT_DATE()」を起点として、年月を返す計算
| 意味 | 計算式 | 結果例(2025/01/27に実行) |
|---|---|---|
| 今月 | DT_FORMAT(DT_CURRENT_DATE(),’HYYM’) | 2025/01 |
| 先月 | DT_FORMAT(DTADD(DT_CURRENT_DATE(),MONTH,-1),’HYYM’) | 2024/12 |
| 先先月 | DT_FORMAT(DTADD(DT_CURRENT_DATE(),MONTH,-2),’HYYM’) | 2024/11 |
| 来月 | DT_FORMAT(DTADD(DT_CURRENT_DATE(),MONTH,1),’HYYM’) | 2025/02 |
| 再来月 | DT_FORMAT(DTADD(DT_CURRENT_DATE(),MONTH,2),’HYYM’) | 2025/03 |
| 昨年同月 | DT_FORMAT(DTADD(DT_CURRENT_DATE(),MONTH,-12),’HYYM’) | 2024/01 |
| 来年同月 | DT_FORMAT(DTADD(DT_CURRENT_DATE(),MONTH,12),’HYYM’) | 2026/01 |
③システム日付「DT_CURRENT_DATE()」を起点として、年を返す計算
| 意味 | 計算式 | 結果例(2025/01/27に実行) |
|---|---|---|
| 今年 | DT_FORMAT(DT_CURRENT_DATE(),’HYY’) | 2025 |
| 昨年 | DT_FORMAT(DTADD(DT_CURRENT_DATE(),YEAR,-1),’HYY’) | 2024 |
| 一昨年 | DT_FORMAT(DTADD(DT_CURRENT_DATE(),YEAR,-2),’HYY’) | 2023 |
| 来年 | DT_FORMAT(DTADD(DT_CURRENT_DATE(),YEAR, 1),’HYY’) | 2026 |
| 再来年 | DT_FORMAT(DTADD(DT_CURRENT_DATE(),YEAR, 2),’HYY’) | 2027 |
④システム日付「DT_CURRENT_DATE()」を起点として、会計年度を返す計算
会計年度の開始月は「SET FY_FIRST_MONTH=4」のように指定します。
| 意味 | 計算式 | 結果例(2025/01/27に実行) |
|---|---|---|
| 今年度会計初月 | DT_FORMAT(DTRUNC(DT_CURRENT_DATE(),FISCAL_YEAR,1),’HYYM’); | 2024/04 |
| 今年度会計末月 | DT_FORMAT(DTRUNC(DT_CURRENT_DATE(),FISCAL_YEAR_END,1),’HYYM’); | 2025/03 |
| 今年度前半期初月 | DT_FORMAT(DTRUNC(DT_CURRENT_DATE(),FISCAL_YEAR,1),’HYYM’); | 2024/04 |
| 今年度前半期末月 | DT_FORMAT(DTADD(DTRUNC(DT_CURRENT_DATE(),FISCAL_YEAR_END,1),QUARTER,-2),’HYYM’); | 2024/09 |
| 今年度後半期初月 | DT_FORMAT(DTADD(DTRUNC(DT_CURRENT_DATE(),FISCAL_YEAR,1),QUARTER,2),’HYYM’); | 2024/10 |
| 今年度後半期末月 | DT_FORMAT(DTRUNC(DT_CURRENT_DATE(),FISCAL_YEAR_END,1),’HYYM’); | 2025/03 |
| 今年度 | DT_FORMAT(DTRUNC(DT_CURRENT_DATE(),FISCAL_YEAR,1),’HYY’); | 2024 |
| 昨年度 | DT_FORMAT(DTRUNC(DTADD(DT_CURRENT_DATE(),YEAR,-1),FISCAL_YEAR,1),’HYY’); | 2023 |
| 一昨年度 | DT_FORMAT(DTRUNC(DTADD(DT_CURRENT_DATE(),YEAR,-2),FISCAL_YEAR,1),’HYY’); | 2022 |
| 来年度 | DT_FORMAT(DTRUNC(DTADD(DT_CURRENT_DATE(),YEAR,1),FISCAL_YEAR,1),’HYY’); | 2025 |
| 再来年度 | DT_FORMAT(DTRUNC(DTADD(DT_CURRENT_DATE(),YEAR,2),FISCAL_YEAR,1),’HYY’); | 2026 |
-SET &本日 = DT_FORMAT(DT_CURRENT_DATE(),’HYYMD’);
-SET &昨日 = DT_FORMAT(DTADD(DT_CURRENT_DATE(),DAY,-1),’HYYMD’);
-SET &一昨日 = DT_FORMAT(DTADD(DT_CURRENT_DATE(),DAY,-2),’HYYMD’);
-SET &明日 = DT_FORMAT(DTADD(DT_CURRENT_DATE(),DAY, 1),’HYYMD’);
-SET &明後日 = DT_FORMAT(DTADD(DT_CURRENT_DATE(),DAY, 2),’HYYMD’);
-SET &今月初日 = DT_FORMAT(DTRUNC( DT_CURRENT_DATE() ,MONTH ,1),’HYYMD’);
-SET &今月末日 = DT_FORMAT(DTRUNC( DT_CURRENT_DATE() ,MONTH_END,1),’HYYMD’);
-SET &先月初日 = DT_FORMAT(DTRUNC(DTADD(DT_CURRENT_DATE(),MONTH, -1),MONTH ,1),’HYYMD’);
-SET &先月末日 = DT_FORMAT(DTRUNC(DTADD(DT_CURRENT_DATE(),MONTH, -1),MONTH_END,1),’HYYMD’);
-SET &来月初日 = DT_FORMAT(DTRUNC(DTADD(DT_CURRENT_DATE(),MONTH, 1),MONTH ,1),’HYYMD’);
-SET &来月末日 = DT_FORMAT(DTRUNC(DTADD(DT_CURRENT_DATE(),MONTH, 1),MONTH_END,1),’HYYMD’);
-SET &今月 = DT_FORMAT( DT_CURRENT_DATE() ,’HYYM’);
-SET &先月 = DT_FORMAT(DTADD(DT_CURRENT_DATE(),MONTH, -1),’HYYM’);
-SET &先先月 = DT_FORMAT(DTADD(DT_CURRENT_DATE(),MONTH, -2),’HYYM’);
-SET &来月 = DT_FORMAT(DTADD(DT_CURRENT_DATE(),MONTH, 1),’HYYM’);
-SET &再来月 = DT_FORMAT(DTADD(DT_CURRENT_DATE(),MONTH, 2),’HYYM’);
-SET &昨年同月 = DT_FORMAT(DTADD(DT_CURRENT_DATE(),MONTH,-12),’HYYM’);
-SET &来年同月 = DT_FORMAT(DTADD(DT_CURRENT_DATE(),MONTH, 12),’HYYM’);
-SET &今年 = DT_FORMAT(DT_CURRENT_DATE(),’HYY’);
-SET &昨年 = DT_FORMAT(DTADD(DT_CURRENT_DATE(),YEAR,-1),’HYY’);
-SET &一昨年 = DT_FORMAT(DTADD(DT_CURRENT_DATE(),YEAR,-2),’HYY’);
-SET &来年 = DT_FORMAT(DTADD(DT_CURRENT_DATE(),YEAR, 1),’HYY’);
-SET &再来年 = DT_FORMAT(DTADD(DT_CURRENT_DATE(),YEAR, 2),’HYY’);
-* 会計年度開始月
SET FY_FIRST_MONTH=4
-RUN
-SET &今年度会計初月 = DT_FORMAT( DTRUNC(DT_CURRENT_DATE(),FISCAL_YEAR ,1) ,’HYYM’);
-SET &今年度会計末月 = DT_FORMAT( DTRUNC(DT_CURRENT_DATE(),FISCAL_YEAR_END,1) ,’HYYM’);
-SET &今年度前半期初月 = DT_FORMAT( DTRUNC(DT_CURRENT_DATE(),FISCAL_YEAR ,1) ,’HYYM’);
-SET &今年度前半期末月 = DT_FORMAT(DTADD(DTRUNC(DT_CURRENT_DATE(),FISCAL_YEAR_END,1),QUARTER,-2),’HYYM’);
-SET &今年度後半期初月 = DT_FORMAT(DTADD(DTRUNC(DT_CURRENT_DATE(),FISCAL_YEAR ,1),QUARTER, 2),’HYYM’);
-SET &今年度後半期末月 = DT_FORMAT( DTRUNC(DT_CURRENT_DATE(),FISCAL_YEAR_END,1) ,’HYYM’);
-SET &今年度 = DT_FORMAT(DTRUNC( DT_CURRENT_DATE() ,FISCAL_YEAR,1),’HYY’);
-SET &昨年度 = DT_FORMAT(DTRUNC(DTADD(DT_CURRENT_DATE(),YEAR,-1),FISCAL_YEAR,1),’HYY’);
-SET &一昨年度 = DT_FORMAT(DTRUNC(DTADD(DT_CURRENT_DATE(),YEAR,-2),FISCAL_YEAR,1),’HYY’);
-SET &来年度 = DT_FORMAT(DTRUNC(DTADD(DT_CURRENT_DATE(),YEAR, 1),FISCAL_YEAR,1),’HYY’);
-SET &再来年度 = DT_FORMAT(DTRUNC(DTADD(DT_CURRENT_DATE(),YEAR, 2),FISCAL_YEAR,1),’HYY’);
-? & SAVEPRINT
項目日付を起点とした「項目(日付型)」パターン
計算式・サンプルプロシジャで利用している「TIME_DATE」は、サンプル項目です。
実際に利用される際は、「TIME_DATE」を「利用する項目」に置き換えてからご利用ください。
項目型は日付型「YYMD」や日付時間型「HYYMDS」のどちらも共通処理です。
①日付「TIME_DATE」を起点として、年月日を返す計算
| 意味 | 受取データ型 ①日付型 ②日付時間型 | 計算式 (TIME_DATEが日付項目) | 結果例 (TIME_DATE項目の値が 2015年01月01日の場合) | SQL変換例 (SQLServer) |
|---|---|---|---|---|
| 当日 | YYMD HYYMD | TIME_DATE | 2015/01/01 | T13."TIME_DATE" |
| 前日 | DTADD(TIME_DATE,DAY,-1) | 2014/12/31 | CAST(DATEADD(DAY,-1,T13."TIME_DATE") AS DATE) | |
| 前々日 | DTADD(TIME_DATE,DAY,-2) | 2014/12/30 | CAST(DATEADD(DAY,-2,T13."TIME_DATE") AS DATE) | |
| 翌日 | DTADD(TIME_DATE,DAY,1) | 2015/01/02 | CAST(DATEADD(DAY,+1,T13."TIME_DATE") AS DATE) | |
| 翌々日 | DTADD(TIME_DATE,DAY,2) | 2015/01/03 | CAST(DATEADD(DAY,+2,T13."TIME_DATE") AS DATE) | |
| 当月初日 | DTRUNC(TIME_DATE,MONTH) | 2015/01/01 | DATEADD(MONTH,DATEDIFF(MONTH,'19000101',T13."TIME_DATE"),'19000101') | |
| 当月末日 | DTRUNC(TIME_DATE,MONTH_END) | 2015/01/31 | EOMONTH(T13."TIME_DATE") | |
| 前月初日 | DTRUNC(DTADD(TIME_DATE,MONTH,-1),MONTH) | 2014/12/01 | DATEADD(MONTH,DATEDIFF(MONTH,'19000101',CAST(DATEADD(MONTH,-1,T13."TIME_DATE") AS DATE)),'19000101') | |
| 前月末日 | DTRUNC(DTADD(TIME_DATE,MONTH,-1),MONTH_END) | 2014/12/31 | EOMONTH(CAST(DATEADD(MONTH,-1,T13."TIME_DATE") AS DATE)) | |
| 翌月初日 | DTRUNC(DTADD(TIME_DATE,MONTH,1),MONTH) | 2015/02/01 | DATEADD(MONTH,DATEDIFF(MONTH,'19000101',CAST(DATEADD(MONTH,+1,T13."TIME_DATE") AS DATE)),'19000101') | |
| 翌月末日 | DTRUNC(DTADD(TIME_DATE,MONTH,1),MONTH_END) | 2015/02/28 | EOMONTH(CAST(DATEADD(MONTH,+1,T13."TIME_DATE") AS DATE)) |
②日付「TIME_DATE」を起点として、年月を返す計算
| 意味 | 受取データ型 ①日付型 ②日付時間型 | 計算式(TIME_DATEが日付項目) | 結果例 (TIME_DATE項目の値が 2015年01月01日の場合) | SQL変換例 (SQLServer) |
|---|---|---|---|---|
| 当月 | YYMDm HYYM | TIME_DATE | 2015/01 | DATEADD(MONTH,DATEDIFF(MONTH,'19000101',T13."TIME_DATE"),'19000101') |
| 前月 | DTADD(TIME_DATE,MONTH,-1) | 2014/12 | DATEADD(MONTH,DATEDIFF(MONTH,'19000101',CAST(DATEADD(MONTH,-1,T13."TIME_DATE") AS DATE)),'19000101') | |
| 前々月 | DTADD(TIME_DATE,MONTH,-2) | 2014/11 | DATEADD(MONTH,DATEDIFF(MONTH,'19000101',CAST(DATEADD(MONTH,-2,T13."TIME_DATE") AS DATE)),'19000101') | |
| 翌月 | DTADD(TIME_DATE,MONTH,1) | 2015/02 | DATEADD(MONTH,DATEDIFF(MONTH,'19000101',CAST(DATEADD(MONTH,+1,T13."TIME_DATE") AS DATE)),'19000101') | |
| 翌々月 | DTADD(TIME_DATE,MONTH,2) | 2015/03 | DATEADD(MONTH,DATEDIFF(MONTH,'19000101',CAST(DATEADD(MONTH,+2,T13."TIME_DATE") AS DATE)),'19000101') | |
| 前年同月 | DTADD(TIME_DATE,YEAR,-1) | 2014/01 | DATEADD(MONTH,DATEDIFF(MONTH,'19000101',CAST(DATEADD(YEAR,-1,T13."TIME_DATE") AS DATE)),'19000101') | |
| 翌年同月 | DTADD(TIME_DATE,YEAR,1) | 2016/01 | DATEADD(MONTH,DATEDIFF(MONTH,'19000101',CAST(DATEADD(YEAR,+1,T13."TIME_DATE") AS DATE)),'19000101') |
③日付「TIME_DATE」を起点として、年を返す計算
| 意味 | 受取データ型 ①日付型 ②日付時間型 | 計算式(TIME_DATEが日付項目) | 結果例 (TIME_DATE項目の値が 2015年01月01日の場合) | SQL変換例 (SQLServer) |
|---|---|---|---|---|
| 当年 | YYMDy HYY | TIME_DATE | 2015 | DATEADD(YEAR,DATEDIFF(YEAR,'19000101',T13."TIME_DATE"),'19000101') |
| 前年 | DTADD(TIME_DATE,YEAR,-1) | 2014 | DATEADD(YEAR,DATEDIFF(YEAR,'19000101',CAST(DATEADD(YEAR,-1,T13."TIME_DATE") AS DATE)),'19000101') | |
| 前々年 | DTADD(TIME_DATE,YEAR,-2) | 2013 | DATEADD(YEAR,DATEDIFF(YEAR,'19000101',CAST(DATEADD(YEAR,-2,T13."TIME_DATE") AS DATE)),'19000101') | |
| 翌年 | DTADD(TIME_DATE,YEAR,1) | 2016 | DATEADD(YEAR,DATEDIFF(YEAR,'19000101',CAST(DATEADD(YEAR,+1,T13."TIME_DATE") AS DATE)),'19000101') | |
| 翌々年 | DTADD(TIME_DATE,YEAR,2) | 2017 | DATEADD(YEAR,DATEDIFF(YEAR,'19000101',CAST(DATEADD(YEAR,+2,T13."TIME_DATE") AS DATE)),'19000101') |
④日付「TIME_DATE」を起点として、会計年度を返す計算
会計年度の開始月は「SET FY_FIRST_MONTH=4」のように指定します。
| 意味 | 受取データ型 ①日付型 ②日付時間型 | 計算式 (TIME_DATEが日付項目) | 結果例 (TIME_DATE項目の値が 2015年01月01日の場合) | SQL変換例 (SQLServer) |
|---|---|---|---|---|
| 会計年度 初月 | YYMDm HYYM | DTRUNC(TIME_DATE,FISCAL_YEAR) | 2014/04 | DATEADD(MONTH,DATEDIFF(MONTH,'19000101',CAST(DATEADD(MONTH,+3,DATEADD(YEAR,DATEDIFF(YEAR,'19000101',CAST(DATEADD(MONTH,-3,T13."TIME_DATE") AS DATE)),'19000101')) AS DATE)),'19000101') |
| 会計年度 末月 | DTRUNC(TIME_DATE,FISCAL_YEAR_END) | 2015/03 | DATEADD(MONTH,DATEDIFF(MONTH,'19000101',CAST(DATEADD(MONTH,+3,CAST(DATEADD(DAY,-1,CAST(DATEADD(YEAR,+1,DATEADD(YEAR,DATEDIFF(YEAR,'19000101',CAST(DATEADD(MONTH,-3,T13."TIME_DATE")AS DATE)),'19000101')) AS DATE)) AS DATE)) AS DATE)),'19000101') | |
| 会計年度 前半期初月 | DTRUNC(TIME_DATE,FISCAL_YEAR) | 2014/04 | DATEADD(MONTH,DATEDIFF(MONTH,'19000101',CAST(DATEADD(MONTH,+3,DATEADD(YEAR,DATEDIFF(YEAR,'19000101',CAST(DATEADD(MONTH,-3,T13."TIME_DATE") AS DATE)),'19000101')) AS DATE)),'19000101') | |
| 会計年度 前半期末月 | DTADD(DTRUNC(TIME_DATE,FISCAL_YEAR_END),QUARTER,-2) | 2014/09 | DATEADD(MONTH,DATEDIFF(MONTH,'19000101',CAST(DATEADD(QUARTER,-2,CAST(DATEADD(MONTH,+3,CAST(DATEADD(DAY,-1,CAST(DATEADD(YEAR,+1,DATEADD(YEAR,DATEDIFF(YEAR,'19000101',CAST(DATEADD(MONTH,-3,T13."TIME_DATE") AS DATE)),'19000101')) AS DATE)) AS DATE)) ASDATE)) AS DATE)),'19000101') | |
| 会計年度 後半期初月 | DTADD(DTRUNC(TIME_DATE,FISCAL_YEAR),QUARTER,2) | 2014/10 | DATEADD(MONTH,DATEDIFF(MONTH,'19000101',CAST(DATEADD(QUARTER,+2,CAST(DATEADD(MONTH,+3,DATEADD(YEAR,DATEDIFF(YEAR,'19000101',CAST(DATEADD(MONTH,-3,T13."TIME_DATE") AS DATE)),'19000101'))AS DATE)) AS DATE)),'19000101') | |
| 会計年度 後半期末月 | DTRUNC(TIME_DATE,FISCAL_YEAR_END) | 2015/03 | DATEADD(MONTH,DATEDIFF(MONTH,'19000101',CAST(DATEADD(MONTH,+3,CAST(DATEADD(DAY,-1,CAST(DATEADD(YEAR,+1,DATEADD(YEAR,DATEDIFF(YEAR,'19000101',CAST(DATEADD(MONTH,-3,T13."TIME_DATE")AS DATE)),'19000101')) AS DATE)) AS DATE)) AS DATE)),'19000101') | |
| 当年度 | YYMDy HYY | DTRUNC(TIME_DATE,FISCAL_YEAR) | 2014 | DATEADD(YEAR,DATEDIFF(YEAR,'19000101',CAST(DATEADD(MONTH,+3,DATEADD(YEAR,DATEDIFF(YEAR,'19000101',CAST(DATEADD(MONTH,-3,T13."TIME_DATE") AS DATE)),'19000101')) AS DATE)),'19000101') |
| 前年度 | DTRUNC(DTADD(TIME_DATE,YEAR,-1),FISCAL_YEAR) | 2013 | DATEADD(YEAR,DATEDIFF(YEAR,'19000101',CAST(DATEADD(MONTH,+3,DATEADD(YEAR,DATEDIFF(YEAR,'19000101',CAST(DATEADD(MONTH,-3,CAST(DATEADD(YEAR,-1,T13."TIME_DATE") AS DATE)) AS DATE)),'19000101')) AS DATE)),'19000101') | |
| 前々年度 | DTRUNC(DTADD(TIME_DATE,YEAR,-2),FISCAL_YEAR) | 2012 | DATEADD(YEAR,DATEDIFF(YEAR,'19000101',CAST(DATEADD(MONTH,+3,DATEADD(YEAR,DATEDIFF(YEAR,'19000101',CAST(DATEADD(MONTH,-3,CAST(DATEADD(YEAR,-2,T13."TIME_DATE") AS DATE)) AS DATE)),'19000101')) AS DATE)),'19000101') | |
| 翌年度 | DTRUNC(DTADD(TIME_DATE,YEAR,1),FISCAL_YEAR) | 2015 | DATEADD(YEAR,DATEDIFF(YEAR,'19000101',CAST(DATEADD(MONTH,+3,DATEADD(YEAR,DATEDIFF(YEAR,'19000101',CAST(DATEADD(MONTH,-3,CAST(DATEADD(YEAR,+1,T13."TIME_DATE") AS DATE)) AS DATE)),'19000101')) AS DATE)),'19000101') | |
| 翌々年度 | DTRUNC(DTADD(TIME_DATE,YEAR,2),FISCAL_YEAR) | 2026 | DATEADD(YEAR,DATEDIFF(YEAR,'19000101',CAST(DATEADD(MONTH,+3,DATEADD(YEAR,DATEDIFF(YEAR,'19000101',CAST(DATEADD(MONTH,-3,CAST(DATEADD(YEAR,+2,T13."TIME_DATE") AS DATE)) AS DATE)),'19000101')) AS DATE)),'19000101') |
SET TRACEON=STMTRACE//CLIENT
SET TRACEUSER=ON
SET TRACESTAMP=OFF
SET FY_FIRST_MONTH=4
-RUN
DEFINE FILE retail_sample/wf_retail
当日/HYYMD = TIME_DATE;
前日/HYYMD = DTADD(TIME_DATE, DAY,-1);
前々日/HYYMD = DTADD(TIME_DATE, DAY,-2);
翌日/HYYMD = DTADD(TIME_DATE, DAY, 1);
翌々日/HYYMD = DTADD(TIME_DATE, DAY, 2);
当月初日/HYYMD = DTRUNC( TIME_DATE ,MONTH );
当月末日/HYYMD = DTRUNC( TIME_DATE ,MONTH_END);
前月初日/HYYMD = DTRUNC(DTADD(TIME_DATE,MONTH, -1),MONTH );
前月末日/HYYMD = DTRUNC(DTADD(TIME_DATE,MONTH, -1),MONTH_END);
翌月初日/HYYMD = DTRUNC(DTADD(TIME_DATE,MONTH, 1),MONTH );
翌月末日/HYYMD = DTRUNC(DTADD(TIME_DATE,MONTH, 1),MONTH_END);
前年前月初日/HYYMD = DTRUNC(DTADD(TIME_DATE,MONTH,-13),MONTH );
前年前月末日/HYYMD = DTRUNC(DTADD(TIME_DATE,MONTH,-13),MONTH_END);
当月/HYYM = TIME_DATE;
前月/HYYM = DTADD(TIME_DATE,MONTH,-1);
前々月/HYYM = DTADD(TIME_DATE,MONTH,-2);
翌月/HYYM = DTADD(TIME_DATE,MONTH, 1);
翌々月/HYYM = DTADD(TIME_DATE,MONTH, 2);
前年同月/HYYM = DTADD(TIME_DATE,YEAR ,-1);
翌年同月/HYYM = DTADD(TIME_DATE,YEAR , 1);
当年/HYY = TIME_DATE;
前年/HYY = DTADD(TIME_DATE,YEAR,-1);
前々年/HYY = DTADD(TIME_DATE,YEAR,-2);
翌年/HYY = DTADD(TIME_DATE,YEAR, 1);
翌々年/HYY = DTADD(TIME_DATE,YEAR, 2);
会計年度初月/HYYM = DTRUNC(TIME_DATE,FISCAL_YEAR );
会計年度末月/HYYM = DTRUNC(TIME_DATE,FISCAL_YEAR_END);
会計年度前半期初月/HYYM = DTRUNC(TIME_DATE,FISCAL_YEAR );
会計年度前半期末月/HYYM = DTADD(DTRUNC(TIME_DATE,FISCAL_YEAR_END),QUARTER, -2);
会計年度後半期初月/HYYM = DTADD(DTRUNC(TIME_DATE,FISCAL_YEAR) ,QUARTER, 2);
会計年度後半期末月/HYYM = DTRUNC(TIME_DATE,FISCAL_YEAR_END);
当年度/HYY = DTRUNC( TIME_DATE ,FISCAL_YEAR);
前年度/HYY = DTRUNC(DTADD(TIME_DATE,YEAR,-1),FISCAL_YEAR);
前々年度/HYY = DTRUNC(DTADD(TIME_DATE,YEAR,-2),FISCAL_YEAR);
翌年度/HYY = DTRUNC(DTADD(TIME_DATE,YEAR, 1),FISCAL_YEAR);
翌々年度/HYY = DTRUNC(DTADD(TIME_DATE,YEAR, 2),FISCAL_YEAR);
END
TABLE FILE retail_sample/wf_retail
SUM TIME_DATE
BY 会計年度初月
END
受取データ型
受取データ型(フォーマット)を編集することで、年月日のスラッシュ区切りの変更等が可能です。
※SET DATE_SEPARATOR=DEFAULT(初期値)の場合
| カテゴリ | フォーマット | 表示 | 意味 |
|---|---|---|---|
| 日付時間 | HYYMD | yyyy/mm/dd | 年月日(スラッシュ区切り) |
| HYYMD. | yyyy.mm.dd | 年月日(ピリオド区切り) | |
| HYYMD- | yyyy-mm-dd | 年月日(ハイフン区切り) | |
| HYYMDB | yyyy mm dd | 年月日(ブランク区切り) | |
| HYYMDN | yyyymmdd | 年月日(区切り文字無し) | |
| HYYoe | yyyy/m/d | 年月日(月日の前ゼロ省略) |
注意事項
Oracleアダプタ利用時に、DTRUNC関数の会計年度の処理(SQL)が不正になる場合があります。
DTRUNC関数に第三引数として「1」を指定すると、SQLに変換されなくなり正しい結果を得ることができます。
変更前
DTRUNC(HIREDATE,FISCAL_YEAR);
変更後
DTRUNC(HIREDATE,FISCAL_YEAR,1);









































