Bird
Raised Fist0
PostgreSQLquery~5 mins

AGE function for differences in PostgreSQL - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the AGE function in PostgreSQL do?
The AGE function calculates the difference between two dates or timestamps and returns the result as an interval showing years, months, and days.
Click to reveal answer
beginner
How do you use AGE to find the difference between the current date and a past date?
Use AGE(current_date, past_date). For example, AGE(current_date, '2000-01-01') returns the time passed since January 1, 2000.
Click to reveal answer
beginner
What is the output type of the AGE function in PostgreSQL?
The output is an interval type that shows the difference in years, months, days, and time components.
Click to reveal answer
intermediate
What happens if you use AGE with only one argument?
AGE with one argument returns the difference between the current date/time and the given timestamp.
Click to reveal answer
intermediate
Why is AGE preferred over simple subtraction for date differences?
AGE accounts for months and years properly, giving a human-readable difference, while subtraction returns just the number of days.
Click to reveal answer
What does AGE('2024-06-01', '2023-06-01') return?
A365 days
B1 year
C12 months
D30 days
Which data type does AGE return in PostgreSQL?
ADate
BInteger
CInterval
DTimestamp
What is the result of AGE('2024-06-01') if today is '2024-06-10'?
A9 days
B10 days
C1 day
D0 days
If you subtract two dates directly (date1 - date2), what do you get?
ANumber of days as an integer
BTimestamp
CInterval with years and months
DString describing difference
Why might AGE('2024-06-01', '2023-12-01') return '6 mons' instead of '182 days'?
AAGE rounds to nearest day
BAGE returns seconds
CAGE only works with years
DAGE counts months and years, not just days
Explain how the AGE function calculates the difference between two dates in PostgreSQL.
Think about how AGE shows time passed in years and months, not just days.
You got /4 concepts.
    Describe the difference between using AGE and simple date subtraction for finding date differences.
    Consider what each method returns and how it represents the difference.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does the PostgreSQL AGE function return when given two timestamps?
      easy
      A. The number of seconds between the two timestamps as an integer
      B. The difference between the two timestamps as an interval showing years, months, and days
      C. The sum of the two timestamps as a new timestamp
      D. The earlier of the two timestamps

      Solution

      1. Step 1: Understand the AGE function purpose

        The AGE function calculates the time difference between two timestamps.
      2. Step 2: Identify the output format

        It returns the difference as an interval showing years, months, and days.
      3. Final Answer:

        The difference between the two timestamps as an interval showing years, months, and days -> Option B
      4. Quick Check:

        AGE returns interval difference [OK]
      Hint: AGE shows difference as years, months, days interval [OK]
      Common Mistakes:
      • Thinking AGE returns seconds or integer
      • Confusing AGE with addition or subtraction of timestamps
      • Assuming AGE returns a timestamp
      2. Which of the following is the correct syntax to get the age difference between two timestamps '2023-01-01' and '2024-06-01' in PostgreSQL?
      easy
      A. SELECT AGE('2024-06-01', '2023-01-01');
      B. SELECT AGE('2023-01-01', '2024-06-01');
      C. SELECT AGE('2024-06-01'::timestamp '2023-01-01'::timestamp);
      D. SELECT AGE('2023-01-01'::timestamp, '2024-06-01'::timestamp);

      Solution

      1. Step 1: Check AGE function parameter order

        AGE calculates the difference as first timestamp minus second timestamp, so the later date should come first.
      2. Step 2: Identify correct syntax with proper order

        Using AGE('2024-06-01', '2023-01-01') returns the positive interval difference.
      3. Final Answer:

        SELECT AGE('2024-06-01', '2023-01-01'); -> Option A
      4. Quick Check:

        Later date first in AGE [OK]
      Hint: Put later date first in AGE function [OK]
      Common Mistakes:
      • Reversing the order of timestamps
      • Not casting strings to timestamps when needed
      • Using AGE with only one parameter incorrectly
      3. What is the output of this query?
      SELECT AGE('2024-06-01'::date, '2023-01-01'::date);
      medium
      A. 1 year 5 mons 1 day
      B. 1 year 6 mons 0 days
      C. 1 year 4 mons 30 days
      D. 1 year 5 mons 0 days

      Solution

      1. Step 1: Calculate difference between dates

        From 2023-01-01 to 2024-06-01 is 1 year and 5 months exactly.
      2. Step 2: Understand AGE output format

        AGE returns interval as years, months, and days; days are zero here.
      3. Final Answer:

        1 year 5 mons 0 days -> Option D
      4. Quick Check:

        AGE returns 1 year 5 mons 0 days [OK]
      Hint: Count full years and months between dates [OK]
      Common Mistakes:
      • Counting months incorrectly as 6 instead of 5
      • Confusing days count
      • Assuming AGE returns total days only
      4. Identify the error in this query:
      SELECT AGE('2023-01-01');
      medium
      A. Incorrect date format used
      B. AGE function cannot accept a single argument
      C. No error; AGE accepts a single argument
      D. AGE requires casting to timestamp explicitly

      Solution

      1. Step 1: Check AGE function argument requirements

        AGE can accept one or two arguments; with one argument it returns difference from current date.
      2. Step 2: Analyze the query

        The query uses one argument but does not cast it; however, AGE accepts one argument as timestamp or date.
      3. Step 3: Identify actual error

        The query is valid; PostgreSQL implicitly handles the date string and computes age to current timestamp. No error.
      4. Final Answer:

        No error; AGE accepts a single argument -> Option C
      5. Quick Check:

        AGE needs two timestamps or one with current date [OK]
      Hint: AGE with one argument uses current date [OK]
      Common Mistakes:
      • Assuming AGE always needs two arguments
      • Thinking date format is wrong
      • Believing casting is mandatory
      5. You want to find the exact age difference between a person's birthdate '1990-04-15' and today, but only in years ignoring months and days. Which query correctly uses AGE and extracts only the years part?
      hard
      A. SELECT EXTRACT(YEAR FROM AGE(CURRENT_DATE, '1990-04-15'));
      B. SELECT EXTRACT(YEAR FROM AGE('1990-04-15', CURRENT_DATE));
      C. SELECT AGE(CURRENT_DATE, '1990-04-15')::year;
      D. SELECT DATE_PART('year', AGE('1990-04-15', CURRENT_DATE));

      Solution

      1. Step 1: Use AGE with current date and birthdate

        AGE(CURRENT_DATE, '1990-04-15') returns interval from birthdate to today.
      2. Step 2: Extract only the year part

        Use EXTRACT(YEAR FROM interval) to get full years ignoring months and days.
      3. Final Answer:

        SELECT EXTRACT(YEAR FROM AGE(CURRENT_DATE, '1990-04-15')); -> Option A
      4. Quick Check:

        EXTRACT YEAR from AGE with later date first [OK]
      Hint: Use EXTRACT(YEAR FROM AGE(later, earlier)) [OK]
      Common Mistakes:
      • Reversing AGE argument order
      • Using wrong function like DATE_PART with reversed arguments
      • Trying to cast interval directly to year
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard