職場で使える!30代エンジニアのoracleエラー対応

とある三流エンジニアが日々起きた出来事や今打ち込んでいることについて備忘録として残していきます。

oracle

oracleのSQLで3ヶ月前の月初日と前月の月末日を取得する方法

投稿日:2016年1月7日 更新日:

スポンサーリンク

 

yyyymmddの半角数字8桁の文字列から、

3ヶ月前の月初日と前月の月末日を

SQLで求める方法を記載する。

基準日が既にdate型である場合は、

to_date, to_charといった変換は

不要である。

あくまでもadd_monthsを使用するために

変換している。

 

3ヶ月前の月初日は以下の通り。
(基準日を2016年1月7日とする)

select to_char(trunc(add_months(to_date(′20160107′, ′YYYYMMDD′), -3) , MONTH), ′YYYYMMDD′) from dual;

 

2016年1月7日の3ヶ月前の月初日、

20151031

が出力される。

 

 

続いて、前月の月末日は以下の通り。
(基準日を2016年1月7日とする)

select to_char(last_day(add_months(to_date(′20160107′, ′YYYYMMDD′), -1)), ′YYYYMMDD′) from dual;

 

2016年1月7日の前月の月末日、

20151231

が出力される。

 

月初日を求める際に、

first_dayなるものが存在すれば便利かと思われるが

そのような関数は何故か存在しない。

スポンサーリンク
にほんブログ村 ライフスタイルブログ 40代 自分らしさへ
にほんブログ村
にほんブログ村 ネットブログ Googleへ
にほんブログ村
にほんブログ村 IT技術ブログ Oracleへ
にほんブログ村

-oracle
-, , ,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

最速で「ORA-12154:TNS:サービス名を解決できませんでした。」を解決する方法

今日は ORA-12154 について、解説します。   tnsnames.ora構成ファイルに指定されたネット・サービス名が 見つからない時に発生するエラーです。 この場合の多くは、 接続の …

ORA-00913:「値の個数が多すぎます。」の対処法について

insert文を発行した際によく見かけるエラーです。 値の個数が多すぎると言われても、、、 って感じですよね。 VALUESの項目数はテーブルの項目数と一致しているし。   でも、よくSQL …

no image

データベース変更後の文の呼び出しにおけるエラー(ステートメントキャッシュに関する制限)

本日は 「データベース変更後の文の呼び出しにおけるエラー」 についてです。   何かといいますと、 データベース変更後の文の呼び出しにおけるエラーとありますが、 この場合のエラーとは実際にe …

no image

新発見ORA-01000:最大オープン・カーソル数を超えました。の対処法

意外なことが起因していることがあります。   本日は、 ORA-01000 です。   Javaやcobolの案件でよく ORA-01000:最大オープン・カーソル数を超えました。 …

ORA-00600: 内部エラー、ORA-07445: 例外が検出されましたの対処について

本日は、 ORA-00600 と ORA-07445 について解説します。   どちもプログラムを実行している最中に メモリ情報などの不揃い(不整合)が検知されることで、 正常にプログラムが …

まだデータがありません。