What are the advantages of using DATERANGE in PHP for managing date ranges in database queries?

When working with date ranges in database queries in PHP, it can be challenging to properly handle the start and end dates. Using the DATERANGE data type in PostgreSQL can simplify this process by allowing you to store and manipulate date ranges directly in the database. This can make querying for overlapping or contained date ranges much easier and more efficient.

// Example of using DATERANGE in PHP for managing date ranges in database queries

// Assuming you have a PostgreSQL database connection established

// Define the date range
$dateRange = new DateRange('2022-01-01', '2022-01-31');

// Insert the date range into the database
$query = "INSERT INTO table_name (date_range_column) VALUES (:dateRange)";
$statement = $pdo->prepare($query);
$statement->bindValue(':dateRange', $dateRange->toPostgres(), PDO::PARAM_STR);
$statement->execute();

// Query for records within a specific date range
$startDate = '2022-01-15';
$endDate = '2022-02-15';
$query = "SELECT * FROM table_name WHERE date_range_column @> :startDate AND date_range_column @< :endDate";
$statement = $pdo->prepare($query);
$statement->bindValue(':startDate', $startDate, PDO::PARAM_STR);
$statement->bindValue(':endDate', $endDate, PDO::PARAM_STR);
$statement->execute();
$results = $statement->fetchAll(PDO::FETCH_ASSOC);

// Process the results
foreach ($results as $result) {
    // Do something with the data
}