1.查询本月的第一天
--方式一
SELECT TO_CHAR(SYSDATE,'YYYY-MM') || '-01' "本月第一天" FROM DUAL;
--方式二
SELECT TO_CHAR(TRUNC(SYSDATE,'MM'),'YYYY-MM-DD') "本月第一天" FROM DUAL;
2.查询本月的最后一天
SELECT TO_CHAR(LAST_DAY(SYSDATE),'YYYY-MM-DD') "本月最后一天" FROM DUAL;
3.查询指定日期的第一天和最后一天
SELECT TO_CHAR(TRUNC(TO_DATE('2018-06','YYYY-MM'), 'MM'), 'YYYY-MM-DD') "指定日期第一天" FROM DUAL;
SELECT TO_CHAR(LAST_DAY(TO_DATE('2018-06','YYYY-MM')), 'YYYY-MM-DD') "指定日期最后一天" FROM DUAL
4.获取上个月的第一天和最后一天
--上一个月的第一天
SELECT TO_CHAR(TRUNC(ADD_MONTHS(SYSDATE, -1), 'mm'), 'yyyy-mm-dd') FROM DUAL;
--上一个月的最后一天 sysdate为系统当前时间
SELECT TO_CHAR(LAST_DAY(ADD_MONTHS(SYSDATE, -1)), 'yyyy-mm-dd') FROM DUAL;
5.获取当年第一天和最后一天
select to_char(trunc(sysdate,'YYYY'),'yyyymmdd'),to_char(add_months(trunc(sysdate,'YYYY'),12)-1,'yyyymmdd') from dual t
参考:https://blog.youkuaiyun.com/weixin_30824479/article/details/95545176