すぐに使える!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」は、サンプル項目です。

実際に利用される際は、「TIME_DATE」利用する項目」に置き換えてからご利用ください。

項目型は日付型「YYMD」や日付時間型「HYYMDS」のどちらも共通処理です。

①日付「TIME_DATE」を起点として、年月日を返す計算

意味受取データ型
①日付型
②日付時間型
計算式
TIME_DATEが日付項目
結果例
(TIME_DATE項目の値が
2015年01月01日の場合)
SQL変換例
(SQLServer)
当日YYMD
HYYMD
TIME_DATE2015/01/01T13."TIME_DATE"
前日DTADD(TIME_DATE,DAY,-1)2014/12/31CAST(DATEADD(DAY,-1,T13."TIME_DATE") AS DATE)
前々日DTADD(TIME_DATE,DAY,-2)2014/12/30CAST(DATEADD(DAY,-2,T13."TIME_DATE") AS DATE)
翌日DTADD(TIME_DATE,DAY,1)2015/01/02CAST(DATEADD(DAY,+1,T13."TIME_DATE") AS DATE)
翌々日DTADD(TIME_DATE,DAY,2)2015/01/03CAST(DATEADD(DAY,+2,T13."TIME_DATE") AS DATE)
当月初日DTRUNC(TIME_DATE,MONTH)2015/01/01DATEADD(MONTH,DATEDIFF(MONTH,'19000101',T13."TIME_DATE"),'19000101')
当月末日DTRUNC(TIME_DATE,MONTH_END)2015/01/31EOMONTH(T13."TIME_DATE")
前月初日DTRUNC(DTADD(TIME_DATE,MONTH,-1),MONTH)2014/12/01DATEADD(MONTH,DATEDIFF(MONTH,'19000101',CAST(DATEADD(MONTH,-1,T13."TIME_DATE") AS DATE)),'19000101')
前月末日DTRUNC(DTADD(TIME_DATE,MONTH,-1),MONTH_END)2014/12/31EOMONTH(CAST(DATEADD(MONTH,-1,T13."TIME_DATE") AS DATE))
翌月初日DTRUNC(DTADD(TIME_DATE,MONTH,1),MONTH)2015/02/01DATEADD(MONTH,DATEDIFF(MONTH,'19000101',CAST(DATEADD(MONTH,+1,T13."TIME_DATE") AS DATE)),'19000101')
翌月末日DTRUNC(DTADD(TIME_DATE,MONTH,1),MONTH_END)2015/02/28EOMONTH(CAST(DATEADD(MONTH,+1,T13."TIME_DATE") AS DATE))

②日付「TIME_DATE」を起点として、年月を返す計算

意味受取データ型
①日付型
②日付時間型
計算式(TIME_DATEが日付項目結果例
(TIME_DATE項目の値が
2015年01月01日の場合)
SQL変換例
(SQLServer)
当月YYMDm
HYYM
TIME_DATE2015/01DATEADD(MONTH,DATEDIFF(MONTH,'19000101',T13."TIME_DATE"),'19000101')
前月DTADD(TIME_DATE,MONTH,-1)2014/12DATEADD(MONTH,DATEDIFF(MONTH,'19000101',CAST(DATEADD(MONTH,-1,T13."TIME_DATE") AS DATE)),'19000101')
前々月DTADD(TIME_DATE,MONTH,-2)2014/11DATEADD(MONTH,DATEDIFF(MONTH,'19000101',CAST(DATEADD(MONTH,-2,T13."TIME_DATE") AS DATE)),'19000101')
翌月DTADD(TIME_DATE,MONTH,1)2015/02DATEADD(MONTH,DATEDIFF(MONTH,'19000101',CAST(DATEADD(MONTH,+1,T13."TIME_DATE") AS DATE)),'19000101')
翌々月DTADD(TIME_DATE,MONTH,2)2015/03DATEADD(MONTH,DATEDIFF(MONTH,'19000101',CAST(DATEADD(MONTH,+2,T13."TIME_DATE") AS DATE)),'19000101')
前年同月DTADD(TIME_DATE,YEAR,-1)2014/01DATEADD(MONTH,DATEDIFF(MONTH,'19000101',CAST(DATEADD(YEAR,-1,T13."TIME_DATE") AS DATE)),'19000101')
翌年同月DTADD(TIME_DATE,YEAR,1)2016/01DATEADD(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_DATE2015DATEADD(YEAR,DATEDIFF(YEAR,'19000101',T13."TIME_DATE"),'19000101')
前年DTADD(TIME_DATE,YEAR,-1)2014DATEADD(YEAR,DATEDIFF(YEAR,'19000101',CAST(DATEADD(YEAR,-1,T13."TIME_DATE") AS DATE)),'19000101')
前々年DTADD(TIME_DATE,YEAR,-2)2013DATEADD(YEAR,DATEDIFF(YEAR,'19000101',CAST(DATEADD(YEAR,-2,T13."TIME_DATE") AS DATE)),'19000101')
翌年DTADD(TIME_DATE,YEAR,1)2016DATEADD(YEAR,DATEDIFF(YEAR,'19000101',CAST(DATEADD(YEAR,+1,T13."TIME_DATE") AS DATE)),'19000101')
翌々年DTADD(TIME_DATE,YEAR,2)2017DATEADD(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/04DATEADD(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/03DATEADD(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/04DATEADD(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/09DATEADD(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/10DATEADD(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/03DATEADD(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)2014DATEADD(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)2013DATEADD(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)2012DATEADD(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)2015DATEADD(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)2026DATEADD(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(初期値)の場合

カテゴリフォーマット表示意味
日付時間HYYMDyyyy/mm/dd年月日(スラッシュ区切り)
HYYMD.yyyy.mm.dd年月日(ピリオド区切り) 
HYYMD-yyyy-mm-dd年月日(ハイフン区切り) 
HYYMDByyyy mm dd年月日(ブランク区切り) 
HYYMDNyyyymmdd年月日(区切り文字無し) 
HYYoeyyyy/m/d年月日(月日の前ゼロ省略) 

注意事項

Oracleアダプタ利用時に、DTRUNC関数の会計年度の処理(SQL)が不正になる場合があります。

DTRUNC関数に第三引数として「1」を指定すると、SQLに変換されなくなり正しい結果を得ることができます。

指定例

変更前
DTRUNC(HIREDATE,FISCAL_YEAR);

変更後
DTRUNC(HIREDATE,FISCAL_YEAR,1);