[ORACLE]指定日付の月末を取得する

投稿日:

LAST_DAYで月末を取得する

LAST_DAYを使います。

実際、仕様で、ある項目には月末を入力させるとか、翌月1日を指定するとかいうのが指定されたりします。

細かく計算してると正直面倒くさいですが、このLAST_DAYを使えば、28日だの30日だの31日だのを月を考慮する必要なく返してくれるので便利。

更に、うるう年もちゃんと29日と返してくれる。

使ってみる

例えば、今月末を取得したかったら、

select last_day(sysdate)  as last_day
from dual;

実行結果はこうなる。

うるう年も、

select last_day(to_date('2020/02/28')) as last_day
from dual;

この通り。

自動で計算してくれる。

翌月1日を取得したかったら、「+1」してやれば良い。

select last_day(to_date('2020/02/28')) + 1  as last_day
from dual;

実行結果はこうなる。

簡単でよい。


							







-ORACLE
-,

関連記事

[ORACLE]Oracle 11g XEの文字コードの変更

Oracle 11g XE を普通にインストールするとUFT-8になりますが、場合に寄っちゃSJISで設定しなきゃいけないときもあるので、その手順。 SJISのdumpを渡される 以前、疑問に思ったの …

Oracleで「ORA-00918: 列の定義が不明瞭です 」のエラーの解決法と発生理由

発生したエラー ORA-00918: 列の定義が不明瞭です 原因 原因は、同じ列名やテーブルの別名を使用していること。 解決方法 Select句で羅列している列に同一の列名(別テーブル)があれば、as …

SQLのJOINの種類を理解する

これは分かりやすい。 https://blog.codinghorror.com/a-visual-explanation-of-sql-joins/ INNNER JOIN FULL OUTER J …

[ORACLE]多分、例外的なora-00911:文字が無効ですエラーの解決方法

多分、このエラーを目にする機会はそれなりにあって、大体の対処法はググればすぐに見つかると思う。 例えば、 SQL実行時にはOKなのに、C#のOracleDbAccess実行時にエラーになる 全角スペー …

ORACLEでDELETEとTRUNCATEのどちらを使うか。

未だに迷う。 例えば、テーブル全件削除をしたいときは delete * from tableA; delete文なら、こうだし。 truncate tableA; truncate文なら、こう。


カテゴリー