Db2 11.1には、日付操作を行う関数についても多くの拡張があり、日付・時刻操作をSQLでより簡単に行えるようになっています。
日付・時刻操作に関して、Oracle, Netteza, PostgreSQL, MySQLなど、他のデータベース製品で使用されるSQLも簡単にDb2環境で実行できるよう、SQLの互換性がより強化されています。
参考(前回までの記事)
Db2:日付,時刻の操作を行う関数(NOW,EXTRACT)
Db2:日付,時刻の操作を行う関数(DATE_PART)
Db2:日付,時刻の操作を行う関数(DATE_TRUNC)
その月から特定の日を取り出す3つの関数
DAYOFMONTH - 日付を表す1から31の整数を戻します
FIRST_DAY - 月の初日を表す日付またはタイム・スタンプを戻します
DAYS_TO_END_OF_MONTH - 月末までの日数を戻します
次のNOW関数は、CURRENT TIMESTAMPを戻しますので、これら3つの関数の計算のベースになります。
Db2のSAMPLEデータベースに接続して、次のSQLを実行します。
VALUES NOW
1
--------------------------
2018-09-07-14.30.58.633000
1 レコードが選択されました。
DAYOFMONTH関数
DAYOFMONTH 関数は、日付を表す1から31の整数を戻します。
Db2のSAMPLEデータベースに接続して、次のSQLを実行します。
VALUES DAYOFMONTH(NOW)
9月7日のため、7が戻ります。
1
-----------
7
1 レコードが選択されました。
FIRST_DAY関数
FIRST_DAY関数を使って、その月の初日を、簡単に取得することができます。
Db2のSAMPLEデータベースに接続して、次のSQLを実行します。
VALUES FIRST_DAY(NOW)
9月1日が戻ります。
1
--------------------------
2018-09-01-14.39.00.542000
1 レコードが選択されました。
DAYS_TO_END_OF_MONTH関数
最後に、DAYS_TO_END_OF_MONTH関数は、月末までの日数を戻します。
その月の最後の日である場合は、0が戻ります。
Db2のSAMPLEデータベースに接続して、次のSQLを実行します。
VALUES DAYS_TO_END_OF_MONTH(NOW)
今日は9月7日のため、23が戻ります。
1
-----------
23
1 レコードが選択されました。
#参考資料