0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

会計年度関数を試す(Oracle AI Database 26ai)

0
Last updated at Posted at 2026-08-06

会社等の組織には「会計年度」が決められています。会計年度はカレンダーとは別の開始日と終了日を持ちます。Oracle AI Database 26ai は会計年度を計算する関数が追加されました。

初期化パラメーター

会計年度の開始日は、初期化パラメーター calendar_fiscal_year_start で決定します。デフォルト値は空文字で、カレンダーと同じ日(1 月 1 日)を意味します。以下の例では、カレントのセッションの初期化パラメーター calendar_fiscal_year_start に 4 月 1 日を指定しています。

会計年度開始日を指定
SQL> ALTER SESSION SET calendar_fiscal_year_start  = '01-APR','DD-MON';
Session altered.

SYSDATE で返される日付が「2026 年 8 月 6 日」 で、初期化パラメーター calendar_fiscal_year_start に、「4月1日」を指定すると、現在の会計年度は「FY2027」になります。

計算日 SQL 出力
会計年度開始日 SHOW PARAMETER calendar_fiscal_year_start ARP-01
サーバー日時 SYSDATE 2026-08-06
カレンダー年 CALENDAR_YEAR(SYSDATE) 2026
会計年度 FISCAL_YEAR(SYSDATE) 2027

会計年度関連関数

Oracle AI Database 26ai には会計年度日付関連の関数が多数追加されました。

日付からの情報取得

指定された日付から、会計年、会計四半期、月、曜日、日の情報を取得する以下の関数が追加されました。

関数名 戻り値のデータ型 説明 デフォルト・フォーマット
FISCAL_YEAR VARCHAR2 年を返す FY{YYYY}
FISCAL_QUARTER VARCHAR2 四半期名を返す Q{n}-FY{YYYY}
FISCAL_MONTH VARCHAR2 月名を返す {MON}-FY{YYYY}
FISCAL_WEEK VARCHAR2 週番号を返す W{n}-FY{YYYY}
FISCAL_DAY VARCHAR2 日を返す {DD}-{MON}-FY{YYYY}
カレンダー部分取得
SQL> SELECT SYSDATE, FISCAL_YEAR(SYSDATE);
SYSDATE   FISCAL_
--------- -------
06-AUG-26 FY2027

SQL> SELECT SYSDATE, FISCAL_QUARTER(SYSDATE);
SYSDATE   FISCAL_QUA
--------- ----------
06-AUG-26 Q2-FY2027

SQL> SELECT SYSDATE, FISCAL_MONTH(SYSDATE);
SYSDATE   FISCAL_MONTH(SYSDATE
--------- --------------------
06-AUG-26 AUG-FY2027

SQL> SELECT SYSDATE, FISCAL_WEEK(SYSDATE);
SYSDATE   FISCAL_WEEK
--------- -----------
06-AUG-26 W19-FY2027

SQL> SELECT SYSDATE, FISCAL_DAY(SYSDATE);
SYSDATE   FISCAL_DAY(SYSDATE)
--------- -----------------------
06-AUG-26 06-AUG-FY2027

FISCAL_MONTH 関数や、FISCAL_DAY の出力フォーマットは NLS 関連の初期化パラメーターで変化します。

月名のフォーマット
SQL> ALTER SESSION SET nls_language='JAPANESE';
セッションが変更されました。

SQL> SELECT SYSDATE, FISCAL_MONTH(SYSDATE);
SYSDATE  FISCAL_MONTH(SYSDATE
-------- --------------------
26-08-06 8月 -FY2026

初期化パラメーターだけでなく、関数にフォーマットを指定することもできます。その場合には会計年度開始日の指定が必要です。下記の例では会計年度開始が「4 月 1 日」で、今日が「8 月 6 日」であるため、会計年度としては 2027 年になっています。

フォーマット指定
SQL> SELECT SYSDATE, FISCAL_MONTH(SYSDATE, '2026-04-01', 'MON-YYYY',  'NLS_DATE_LANGUAGE=FRENCH');

SYSDATE  FISCAL_MONTH(SYSDATE,'202
-------- -------------------------
26-08-06 AOÛT -2027

日付の追加関数

特定の日付に数値を加えた場合の日付を返す関数が追加されました。

関数名 戻り値のデータ型 説明 デフォルト・フォーマット
FISCAL_ADD_YEARS DATE 追加した年を返す {YYYY}
FISCAL_ADD_QUARTERS DATE 追加した四半期名を返す Q{n}-{YYYY}
FISCAL_ADD_MONTHS DATE 追加した月名を返す {MON}-{YYYY}
FISCAL_ADD_WEEKS DATE 追加した週番号を返す W{n}-{YYYY}
FISCAL_ADD_DAYS DATE 追加した日を返す {DD}-{MON}-{YYYY}
指定された期間を追加した日付
SQL> ALTER SESSION SET nls_date_format='YYYY/MM/DD';
セッションが変更されました。

SQL> SELECT FISCAL_ADD_YEARS(SYSDATE, 1);
FISCAL_ADD
----------
2027/08/06

SQL> SELECT FISCAL_ADD_QUARTERS(SYSDATE, 2);
FISCAL_ADD
----------
2027/02/06

SQL> SELECT FISCAL_ADD_WEEKS(SYSDATE, 3);
FISCAL_ADD
----------
2026/08/27

SQL> SELECT FISCAL_ADD_DAYS(SYSDATE, 4);
FISCAL_ADD
----------
2026/08/10

追加する日にマイナスの値を指定すると、パラメーターで指定された日よりも過去の日付を取得できます。

過去日付
SQL> SELECT SYSDATE, FISCAL_ADD_WEEKS(SYSDATE, -1);

SYSDATE    FISCAL_ADD
---------- ----------
2026/08/06 2026/07/30

開始日と終了日

指定された期間の開始日と終了日を返す関数が追加されました。

関数名 戻り値のデータ型 説明
FISCAL_YEAR_START_DATE DATE 年の開始日を返す
FISCAL_YEAR_END_DATE DATE 年の終了日を返す
FISCAL_QUARTER_START_DATE DATE 四半期の開始日を返す
FISCAL_QUARTER_END_DATE DATE 四半期名の開始日を返す
FISCAL_MONTH_START_DATE DATE 月の開始日を返す
FISCAL_MONTH_END_DATE DATE 月の開始日を返す
FISCAL_WEEK_START_DATE DATE 週の開始日を返す
FISCAL_WEEK_END_DATE DATE 週の終了日を返す

下記の例では、会計年度の開始を「4 月 1 日」にしているため、開始・終了日が変化しています。

開始日・終了日
SQL> ALTER SESSION SET calendar_fiscal_year_start  = '01-APR','DD-MON';
Session altered.

SQL> SELECT FISCAL_YEAR_START_DATE(SYSDATE), FISCAL_YEAR_END_DATE(SYSDATE);
FISCAL_YE FISCAL_YE
--------- ---------
01-APR-26 31-MAR-27

SQL> SELECT FISCAL_QUARTER_START_DATE(SYSDATE), FISCAL_QUARTER_END_DATE(SYSDATE);
FISCAL_QU FISCAL_QU
--------- ---------
01-JUL-26 30-SEP-26

SQL> SELECT FISCAL_MONTH_START_DATE(SYSDATE), FISCAL_MONTH_END_DATE(SYSDATE);
FISCAL_MO FISCAL_MO
--------- ---------
01-AUG-26 31-AUG-26

SQL> SELECT FISCAL_WEEK_START_DATE(SYSDATE), FISCAL_WEEK_END_DATE(SYSDATE);
FISCAL_WE FISCAL_WE
--------- ---------
05-AUG-26 11-AUG-26

数値を返す

指定された日付から部分の数値を返す関数が追加されました。

関数名 戻り値のデータ型 説明
FISCAL_YEAR_NUMBER NUMBER 年の数値を返す
FISCAL_QUARTER_OF_YEAR NUMBER 四半期番号を返す
FISCAL_MONTH_OF_YEAR NUMBER 年から月番号を返す(1~12)
FISCAL_MONTH_OF_QUARTER NUMBER 四半期内の月番号を返す(1~12)
FISCAL_WEEK_OF_YEAR NUMBER 年から週番号を返す
FISCAL_DAY_OF_YEAR NUMBER 年から日番号を返す
FISCAL_DAY_OF_QUARTER NUMBER 四半期から日番号を返す
FISCAL_DAY_OF_MONTH NUMBER 月から日番号を返す
FISCAL_DAY_OF_WEEK NUMBER 週から日番号を返す(デフォルト:日曜日=1, 土曜日=7)
数値を返す
SQL> SELECT FISCAL_YEAR_NUMBER(SYSDATE), FISCAL_QUARTER_OF_YEAR(SYSDATE);
FISCAL_YEAR_NUMBER(SYSDATE) FISCAL_QUARTER_OF_YEAR(SYSDATE)
--------------------------- -------------------------------
                       2027                               2

SQL> SELECT FISCAL_MONTH_OF_YEAR(SYSDATE), FISCAL_MONTH_OF_QUARTER(SYSDATE);
FISCAL_MONTH_OF_YEAR(SYSDATE) FISCAL_MONTH_OF_QUARTER(SYSDATE)
------------------------------- --------------------------------
                              8                                2

SQL> SELECT FISCAL_WEEK_OF_YEAR(SYSDATE);
FISCAL_WEEK_OF_YEAR(SYSDATE)
------------------------------
                            19

SQL> SELECT FISCAL_DAY_OF_YEAR(SYSDATE), FISCAL_DAY_OF_QUARTER(SYSDATE);
FISCAL_DAY_OF_YEAR(SYSDATE) FISCAL_DAY_OF_QUARTER(SYSDATE)
----------------------------- ------------------------------
                          128                             37

SQL> SELECT FISCAL_DAY_OF_MONTH(SYSDATE), FISCAL_DAY_OF_WEEK(SYSDATE);
FISCAL_DAY_OF_MONTH(SYSDATE) FISCAL_DAY_OF_WEEK(SYSDATE)
------------------------------ ---------------------------
                             6                           5

参考:Oracle AI Database 26ai: SQL Language Reference

Author: Noriyoshi Shinoda / Date: August 6, 2026

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?