### Discussed in https://github.com/apache/airflow/discussions/33345

<div type='discussions-op-text'>

<sup>Originally posted by **vuphamcs** August 11, 2023</sup>
### Description

Is there a variable similar to `prev_start_date_success` but for the previous DAG run’s completion date? The value I’m hoping to retrieve to use within the next DAG run is `2023-08-10 16:04:30`

![image](https://github.com/apache/airflow/assets/1600760/9e2af349-4c3e-47e1-8a1a-9d8827b56f57)


### Use case/motivation

One particular use case is to help guarantee that the next DAG run only queries data that was inserted during the existing DAG run, and not the past DAG run.

```python
prev_ts = context['prev_end_date_success']

sql = f"SELECT * FROM results WHERE created_at > {context['prev_end_date_success']}"
```

### Related issues

_No response_

### Are you willing to submit a PR?

- [ ] 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)
</div>
"""
    Set a task try number.
    :param task_instance: the task instance
    :param value: the try number
    :meta private:
    """
    task_instance._try_number = value
def _refresh_from_task(
    *, task_instance: TaskInstance | TaskInstancePydantic, task: Operator, pool_override: str | None = None
) -> None:
    """
    Copy common attributes from the given task.
    :param task_instance: the task instance
    :param task: The task object to copy from
    :param pool_override: Use the pool_override instead of task's pool
    :meta private:
    """
    task_instance.task = task
    task_instance.queue = task.queue
    task_instance.pool = pool_override or task.pool
    task_instance.pool_slots = task.pool_slots
    task_instance.priority_weight = task.priority_weight_total
    task_instance.run_as_user = task.run_as_user
    
    
    task_instance.executor_config = task.executor_config
    task_instance.operator = task.task_type
    task_instance.custom_operator_name = getattr(task, "custom_operator_name", None)
def _record_task_map_for_downstreams(