Brightlane's legal team uses a contract management system that stores expiry dates as plain text strings rather than calendar dates. The string '2025-06-30' needs to be returned as a proper date value so the system can perform date comparisons.
Write a query to convert that text string into a date.
Output:
- A single row with one column,
contract_end_date, typed as a date.
Run previews · Check grades
Write a query, then run it to see results here.
Worked solution Try it yourself first
SELECT
'2025-06-30'::date AS contract_end_date The shape
The ::date cast is what turns the quoted characters into a real date value the contract management system can compare against other dates. Without it the value is just a string that happens to look like a date.
Clause by clause
SELECT '2025-06-30'::datereads the string literal'2025-06-30'and casts it to adate. The::operator is PostgreSQL's shorthand for "treat this value as the type on the right." The text on the left has to be in a format PostgreSQL recognises as a date —YYYY-MM-DDis the safest one, and it's what the contract system is already producing.AS contract_end_datelabels the output column. Without the alias, PostgreSQL would name the columndate, which is a reserved word and gives downstream code nothing useful to grab onto. The alias makes the result read as the business field the legal team cares about.
The trap
Drop the ::date and the value comes back as text — same characters on the screen, but a comparison like contract_end_date < CURRENT_DATE will either fail with a type-mismatch error or produce something that looks like it works while quietly comparing strings character by character. The cast is what gives the column its real type, and the real type is what every downstream date operation depends on.
You practiced explicit type casting from text to date with ::date. The cast operator is the most common shape for converting one type into another in PostgreSQL.