获取月(两位):select to_char(sysdate,'mm') from dual
那你就把指定的日期to_date()成date,如下:
select to_char(to_date('2004-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss'),'mm') from dual
SQL> select to_char(to_date('2015-02-11','yyyy-mm-dd'),'mm') yf from dual;
YF
--
02
SQL> select to_char((to_date('2015-01-02','yyyy-mm-dd')+(7-to_char(to_date(2015-01-02','yyyy-mm-dd'),'d'))+4*7),'mm') from dual;
TO
--
01
(to_date('2015-01-01','yyyy-mm-dd') 算出1月1 号是周几
(7-to_char(to_date(2015-01-01','yyyy-mm-dd'),'d')) 算出第一周还剩的天数
+4*7 再加上4周
最后再取月份 不一定准确 有的周跨月 稍麻烦一点 要改下