@Saurab Dahal Yes its achievable. But there are few tweeks which has to be done. Partitioned table should be created with additional field("month") along with sale_date. Create the hive table with month as partitioned column. When inserting into the table, extract only the month from sales_date and pass it to insert statement.
Insert into table table_name partitioned(month) select col1,col2,MONTH(sales_date),sale_date from source_table;
Above command should work. Make sure the below property is enabled.
set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict
Hope It helps!