I am using postgres 10 db.
I am having Customers table consisting of following columns
custid (primary key),
name,
phonenumber,
email,
dateofbirth,
a
Try this method:
For each month you can run this script and this will give you logical partitioning.
update customer set partition_column=to_char(Join_Date, 'YYYY-MM')
join intermediate_table on intermediate_table.custid=customer.custid
and intermediate_table.Join_Date=customer.Join_Date
truncate table intermediate_table
There is an example for your problem in the Postgres documentation.
PostgreSQL: Documentation: 10: 5.10. Table Partitioning