### Apache Airflow version

Other Airflow 2 version

### What happened

Hi All,

When I run the below command in Airflow 2.3.4:

`airflow db clean --clean-before-timestamp '2022-09-18T00:00:00+05:30' --yes`

I receive an error within a warning which says

`[2022-09-20 10:33:30,971] {db_cleanup.py:302} WARNING - Encountered error when attempting to clean table 'rendered_task_instance_fields'.`

All other tables like `log`, `dag`, `xcom` get deleted properly. On my analysis, `rendered_task_instance_fields` was the 5th largest table by rows in the DB, so the impact of it's data size is significant.

On analyzing the table itself on PostGres 13 DB, I found that the table `rendered_task_instance_fields` has no timestamp column that records when the entry was inserted.

https://imgur.com/a/Qys2uwD

Thus, there would be no way the code can filter out older records and delete them.

### What you think should happen instead

A timestamp field needs to be added to the table `rendered_task_instance_fields` basis of which older records can be deleted.

### How to reproduce

Run the below command in airflow v2.3.4 and check the output.

`airflow db clean --clean-before-timestamp '2022-09-18T00:00:00+05:30' --yes`

### Operating System

Ubuntu 20.04 LTS

### Versions of Apache Airflow Providers

apache-airflow-providers-amazon==5.1.0
apache-airflow-providers-celery==3.0.0
apache-airflow-providers-common-sql==1.2.0
apache-airflow-providers-ftp==3.1.0
apache-airflow-providers-google==8.3.0
apache-airflow-providers-http==4.0.0
apache-airflow-providers-imap==3.0.0
apache-airflow-providers-mongo==3.0.0
apache-airflow-providers-mysql==3.2.0
apache-airflow-providers-slack==5.1.0
apache-airflow-providers-sqlite==3.2.1

### Deployment

Virtualenv installation

### Deployment details

_No response_

### Anything else

_No response_

### Are you willing to submit PR?

- [X] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

create_tis(
            base_date=base_date,
            num_tis=10,
            external_trigger=external_trigger,
        )
        target_table_name = "_airflow_temp_table_name"
        with create_session() as session:
            clean_before_date = base_date.add(**date_add_kwargs)
            query = _build_query(
                **config_dict[table_name].__dict__,
                clean_before_timestamp=clean_before_date,
                session=session,
            )
            stmt = CreateTableAs(target_table_name, query.selectable)
            session.execute(stmt)
            res = session.execute(f"SELECT COUNT(1) FROM {target_table_name}")
            for row in res:
                assert row[0] == expected_to_delete
    @pytest.mark.parametrize(
        "table_name, date_add_kwargs, expected_to_delete, external_trigger",
        [
            param("task_instance", dict(days=0), 0, False, id="beginning"),
            param("task_instance", dict(days=4), 4, False, id="middle"),
            param("task_instance", dict(days=9), 9, False, id="end_exactly"),
            param("task_instance", dict(days=9, microseconds=1), 10, False, id="beyond_end"),
            param("dag_run", dict(days=9, microseconds=1), 9, False, id="beyond_end_dr"),
            param("dag_run", dict(days=9, microseconds=1), 10, True, id="beyond_end_dr_external"),
        ],
    )
    def test__cleanup_table(self, table_name, date_add_kwargs, expected_to_delete, external_trigger):