If you want to convert your table name into a timestamp, you don't need
substring or similar. This also works:

=# select to_date('table_part_p2024_08_08', '"table_part_p"YYYY"_"MM"_"DD');
  to_date
------------
 2024-08-08
(1 row)

But as Greg said, your strings are perfectly sortable.


On Thu, Aug 8, 2024 at 9:52 PM veem v <veema0...@gmail.com> wrote:

> Hi ,
> We are using postgres version 15.4. We have a range partition table and
> the partition naming convention is generated by pg_partman and is something
> like "table_name>_pYYYY_MM_DD".
>
> We have a requirement of extracting specific partitions ordered by the
> date criteria and also do some operations on that specific date. But I am
> struggling and it's not working as expected.I tried something as below but
> it's not working.Can somebody guide me here please.
>
>  to_date( substring('table_part_p2024_08_08' from
> '_p(\d{4})_(\d{2})_(\d{2})'),      'YYYY_MM_DD'
>     ) < current_date
>
> or is there any ready-made data dictionary which will give us the order of
> the partitions by the date and we can get hold of the specific nth
> partition in that table?
>
> Regards
> Veem
>

Reply via email to