SQL TO_DATE

Parses a text string into a real DATE value, using a format pattern you specify explicitly.

What & Why

TO_DATE(text, format) converts a text string into a genuine DATE value. Unlike a simple cast ('2024-06-28'::DATE, which only works for Postgres's default format), TO_DATE takes an explicit format pattern, so it can correctly parse dates written in non-standard layouts.

See How It Works

BUSINESS QUESTION

Marketing validates how campaign start dates would be parsed from an ISO-formatted import field.

idnamechannelspendstart_dateend_datestatustarget_segment
1Spring Launchgoogle_ads55000.002024-01-152024-03-31activesmb
2Retention Webinaremail45000.002024-02-102024-04-15activeenterprise
3Finance Retargetinglinkedin50000.002024-03-122024-05-31activeenterprise
4Enterprise Searchgoogle_ads60000.002024-04-012024-06-30activeenterprise
EXAMPLE QUERY
SELECT
  id AS campaign_id,
  TO_CHAR(start_date, 'YYYY-MM-DD') AS imported_text,
  TO_DATE(TO_CHAR(start_date, 'YYYY-MM-DD'), 'YYYY-MM-DD') AS parsed_start_date
FROM marketing.campaigns
ORDER BY campaign_id;
RESULT — exact output from the displayed Queryflo rows
campaign_idimported_textparsed_start_date
12024-01-152024-01-15
22024-02-102024-02-10
32024-03-122024-03-12
42024-04-012024-04-01

TO_DATE recreates each typed campaign start date from its ISO text.

Now You Try

Practice this concept

Marketing wants to validate ISO campaign start-date text by parsing it back into a typed date.

Available schema
marketing

Prefix tables with marketing.table_name.

campaign_idimported_textparsed_start_date
marketing.campaigns
ColumnType
idinteger
nametext
channeltext
spendnumeric
start_datedate
end_datedate
statustext
target_segmenttext
legacy_idtext
query.sql
Intermediate business practice

Sign up free to try it on a real business scenario