Skip to content
Maestro

Dates That Don't Break: Days, Months, and Times in Your Data

By the end, you'll convert, filter, group, and compare dates in pandas and DuckDB without a format, a time zone, or an empty month quietly changing your result.

You go at your own pace, with your Maestro beside you, 1:1, through the whole course: ask it anything, and it asks you questions too.

15 skills · 4 modules

What you'll be able to do

Each box is a skill. The base is at the bottom, recognizing and explaining, and you work your way up to building something of your own and judging what works and why.

  1. Synthesize

    • Build a report that dates can't break

      Where I teach it: Doing math with dates · Challenge: a monthly report that doesn't break

      Builds on:

      • Convert UTC to local time using the time zone name
      • Fill in missing periods with a calendar table
      • Compare against the same period last year
      • Filter timestamps by whole days

      Your Maestro asks you to build something of your own with it and saves it as evidence when you do.

  2. Analyze

    • Compare against the same period last year

      Where I teach it: Doing math with dates · How do I compare sales to the same period last year?

      Builds on:

      • Group dates by month, quarter, or week
      • Calculate days and months between two dates

      Your Maestro asks you to break a problem down with it and saves it as evidence when you do.

  3. Apply

    • Convert text into dates with an explicit format

      Where I teach it: A date isn't just text · How do I convert text to dates in pandas and DuckDB?

      Builds on:

      • Tell a date stored as text from a real date
      • Explain why dd/mm and mm/dd get confused
      • Explain why ISO 8601 (YYYY-MM-DD) is worth using

      Your Maestro asks you to use it on a new case and saves it as evidence when you do.

    • Filter timestamps by whole days

      Where I teach it: Times and time zones · Why does BETWEEN miss the last day? Filtering dates that have a time

      Builds on:

      • Convert text into dates with an explicit format

      Your Maestro asks you to use it on a new case and saves it as evidence when you do.

    • Convert UTC to local time using the time zone name

      Where I teach it: Times and time zones · How do I convert UTC to Mexico City time?

      Builds on:

      • Explain what a UTC timestamp is
      • Convert text into dates with an explicit format

      Your Maestro asks you to use it on a new case and saves it as evidence when you do.

    • Group dates by month, quarter, or week

      Where I teach it: Grouping over time · How do I group sales by month and by quarter?

      Builds on:

      • Convert text into dates with an explicit format

      Your Maestro asks you to use it on a new case and saves it as evidence when you do.

    • Calculate the ISO week and ISO year

      Where I teach it: Grouping over time · Which week is January 1 in? ISO weeks in pandas and DuckDB

      Builds on:

      • Group dates by month, quarter, or week

      Your Maestro asks you to use it on a new case and saves it as evidence when you do.

    • Fill in missing periods with a calendar table

      Where I teach it: Grouping over time · Why doesn't a month with no sales show up when I group?

      Builds on:

      • Group dates by month, quarter, or week
      • Explain why a period with no data doesn't show up when grouping

      Your Maestro asks you to use it on a new case and saves it as evidence when you do.

  4. Understand

    • Tell a date stored as text from a real date

      Where I teach it: A date isn't just text · Why are my dates sorting wrong? Dates stored as text

      Your Maestro asks you to explain it in your own words and saves it as evidence when you do.

    • Explain why dd/mm and mm/dd get confused

      Where I teach it: A date isn't just text · Why does pandas mix up the day and the month? Ambiguous dates and ISO 8601

      Builds on:

      • Tell a date stored as text from a real date

      Your Maestro asks you to explain it in your own words and saves it as evidence when you do.

    • Explain why ISO 8601 (YYYY-MM-DD) is worth using

      Where I teach it: A date isn't just text · Why does pandas mix up the day and the month? Ambiguous dates and ISO 8601

      Builds on:

      • Tell a date stored as text from a real date

      Your Maestro asks you to explain it in your own words and saves it as evidence when you do.

    • Explain what a UTC timestamp is

      Where I teach it: Times and time zones · How do I convert UTC to Mexico City time?

      Your Maestro asks you to explain it in your own words and saves it as evidence when you do.

    • Explain why a period with no data doesn't show up when grouping

      Where I teach it: Grouping over time · Why doesn't a month with no sales show up when I group?

      Your Maestro asks you to explain it in your own words and saves it as evidence when you do.

What we'll cover

  1. A date isn't just text

    1. Why are my dates sorting wrong? Dates stored as text
    2. Why does pandas mix up the day and the month? Ambiguous dates and ISO 8601
    3. How do I convert text to dates in pandas and DuckDB?
  2. Times and time zones

    1. Why does BETWEEN miss the last day? Filtering dates that have a time
    2. How do I convert UTC to Mexico City time?
  3. Grouping over time

    1. How do I group sales by month and by quarter?
    2. Which week is January 1 in? ISO weeks in pandas and DuckDB
    3. Why doesn't a month with no sales show up when I group?
  4. Doing math with dates

    1. How many days or months are there between two dates in SQL and pandas?
    2. How do I calculate someone's age in SQL and pandas?
    3. How do I compare sales to the same period last year?
    4. Challenge: a monthly report that doesn't break

Common questions

How much does it cost?
Nothing. You can read every lesson without an account. To run the exercises and talk to your Maestro, sign in with your email and enroll with one tap. No card needed.
Do I need to know SQL or pandas?
You don't need to be fluent in either. Every exercise starts with the code mostly written, and anything new is explained on the page. The last module uses WITH, LEFT JOIN, and GROUP BY, and the page explains each one in a line.
Do I use pandas or DuckDB?
Both. Wherever the explanation depends on the tool, there's a pandas tab and a DuckDB tab, and the course remembers your pick on every page. The SQL exercises run in DuckDB and the Python exercises run in pandas, from your browser, with nothing to install.
Is the data real?
No. It's synthetic, public-domain (CC0) data for a made-up coffee shop chain, Café Altura, built with the same problems real files have.
What should I take next?
If you want to master WITH, joins, and GROUP BY from the ground up, take SQL for Data People: Think in Tables, Not Spreadsheets, a paid course that teaches SQL from scratch in DuckDB.

What you get

  • 4 modules and 12 pages, open whenever you want them.
  • Open to everyone: read all of it, and your Maestro, an AI, answers one question per page, on up to five pages a day.

  • With a free account: your Maestro for the whole course, always on the page you're on, and the exercises run with nothing to install.

Words you'll meet

In the lessons, tap one to see what it means, or ask your Maestro about it.

Who's teaching you

Sergio Sánchez

I'm Sergio, chekos online. I've worked with data for about ten years, mostly at mission-driven organizations: policy research first, then education, and now early childhood services. In 2018 I started tacosdedatos to share what I was learning, and since then it's been a blog, a podcast, courses, guides, and a community. These days I spend a lot of my time building with AI agents and writing about how I organize my work around them. I share what I've learned; you take what's useful and make it yours.

See you in the course

Dates That Don't Break: Days, Months, and Times in Your Data