My solution(months in german):
PARTITION BY LIST ((to_char(GEBURTSDATUM, \'Month\'))) ( PARTITION p1 VALUES(\'JANUAR\'), PARTITION p2 VALUES(\'Februar\'
If the table has a date column, the statement below can be used as an example for monthly partitioning starting from today (Oracle 11g):
PARTITION BY RANGE (date_column) INTERVAL (NUMTODSINTERVAL(1,'month') ) (PARTITION p_first VALUES LESS THAN ('16-MAY-2016'));