16bit!

エンジニアじゃなくなっちゃった人が何かを書くブログ

【SQL】月初め、末日を取得する関数などまとめ

暇なので簡単にまとめておきます。

select
  to_char(trunc(sysdate),'YYYY/MM/DD') TODAY, //今日
  to_char(trunc(sysdate,'MM'),'YYYY/MM/DD') FIRST_DATE,//当月初日
  to_char(trunc(sysdate,'YYYY'),'YYYY/MM/DD') YEAR_FIRST_DATE,//当年度初日
  to_char(last_day(sysdate),'YYYY/MM/DD') LAST_DATE,//当月末日
from dual

trunc(date_val,'MM')とすると、その月の初日がとって来れるようです(年の場合も同様)。
また、末日については'last_day'関数で取ってこれます(Oracleの場合)。


ついでに、日付や月の値のみを抽出したい場合には、
以下のような関数も使えます。

select
  extract(day from sysdate) DAY,
  extract(day from last_day(sysdate)) LAST_DAY,
  extract(month from sysdate) MONTH,
  extract(year from sysdate) YEAR
from dual

'to_char(last_day(sysdate), 'DD') LAST_DAY'と書くよりは多少はわかりやすい? かも。


終わり。