The interval type helps you store and work with durations of time, like hours, days, or months. It makes it easy to add or subtract time periods in your data.
You want to record how long a task took, like 3 hours and 15 minutes.
You need to calculate the difference between two dates or times.
You want to add a duration to a date, like adding 2 weeks to a start date.
You want to store recurring time periods, like a subscription length of 1 month.
You want to compare durations, like checking if one event lasted longer than another.
Syntax
PostgreSQL
INTERVAL '[quantity] [unit]'
The quantity is a number (can be decimal).
The unit can be seconds, minutes, hours, days, weeks, months, years, etc.
Examples
This represents a duration of 3 hours and 15 minutes.
PostgreSQL
INTERVAL '3 hours 15 minutes'
This represents a duration of 1 day.
PostgreSQL
INTERVAL '1 day'
This represents a duration of 2 months and 10 days.
PostgreSQL
INTERVAL '2 months 10 days'
This represents a duration of 45 seconds.
PostgreSQL
INTERVAL '45 seconds'
Sample Program
This query shows today's date, adds 1 month and 5 days to it, and also shows a duration of 2 hours and 30 minutes.
You can add or subtract intervals from dates or timestamps easily.
Intervals can be combined by adding them together.
Be careful with months and years because their length can vary (months can have 28 to 31 days).
Summary
The interval type stores durations like hours, days, or months.
You can use intervals to add or subtract time from dates.
Intervals make working with time periods simple and clear.
Practice
(1/5)
1. What does the interval type in PostgreSQL represent?
easy
A. A numeric value for counting rows
B. A specific date and time
C. A duration of time like hours, days, or months
D. A text string describing time
Solution
Step 1: Understand the interval type purpose
The interval type is designed to store durations, not fixed points in time.
Step 2: Compare with other types
Unlike timestamp or date types, interval holds a length of time like '3 days' or '2 hours'.
Final Answer:
A duration of time like hours, days, or months -> Option C
Quick Check:
Interval = Duration [OK]
Hint: Interval means duration, not a fixed date/time [OK]
Common Mistakes:
Confusing interval with timestamp
Thinking interval stores exact dates
Assuming interval is a string
2. Which of the following is the correct way to declare an interval of 5 days in PostgreSQL?
easy
A. INTERVAL 5 days
B. INTERVAL '5 days'
C. '5 days' INTERVAL
D. INTERVAL 'days 5'
Solution
Step 1: Recall interval literal syntax
PostgreSQL requires the interval value to be a string inside single quotes after the INTERVAL keyword.
Step 2: Check each option
Only INTERVAL '5 days' matches the correct syntax; others are invalid or reversed.
Final Answer:
INTERVAL '5 days' -> Option B
Quick Check:
Interval syntax = INTERVAL 'value unit' [OK]
Hint: Use INTERVAL followed by quoted string for durations [OK]
Common Mistakes:
Omitting quotes around the duration
Placing INTERVAL after the string
Swapping number and unit order
3. What is the result of this query?
SELECT CURRENT_DATE + INTERVAL '3 days';
medium
A. The current date minus 3 days
B. The current date as text
C. An error because you cannot add interval to date
D. The date 3 days after today
Solution
Step 1: Understand adding interval to date
Adding an interval to a date shifts the date forward by that duration.
Step 2: Apply the interval '3 days'
Adding '3 days' to CURRENT_DATE results in a date 3 days later than today.
Final Answer:
The date 3 days after today -> Option D
Quick Check:
Date + Interval = Date shifted forward [OK]
Hint: Adding interval to date moves date forward [OK]
Common Mistakes:
Thinking it subtracts days
Expecting a text output
Believing it causes an error
4. Identify the error in this query:
SELECT CURRENT_TIMESTAMP + '2 hours';
medium
A. Missing INTERVAL keyword before '2 hours'
B. CURRENT_TIMESTAMP cannot be used with intervals
C. Quotes around '2 hours' should be double quotes
D. No error, query is correct
Solution
Step 1: Check interval usage with timestamp
To add a duration, the value must be an interval type, declared with INTERVAL keyword.
Step 2: Analyze the query
The string '2 hours' lacks INTERVAL keyword, so PostgreSQL will error.
Final Answer:
Missing INTERVAL keyword before '2 hours' -> Option A
Quick Check:
Interval keyword required for durations [OK]
Hint: Always use INTERVAL before quoted duration strings [OK]
Common Mistakes:
Omitting INTERVAL keyword
Using wrong quotes
Assuming timestamp can't add intervals
5. You want to find the date 1 month and 15 days after January 10, 2024. Which query gives the correct result?
hard
A. SELECT DATE '2024-01-10' + INTERVAL '1 month' + INTERVAL '15 days';
B. SELECT DATE '2024-01-10' + INTERVAL '1 month + 15 days';
C. SELECT DATE '2024-01-10' + INTERVAL '45 days';
D. SELECT DATE '2024-01-10' + INTERVAL '1.5 months';
Solution
Step 1: Understand interval addition
Adding intervals separately ensures correct handling of months and days.
Step 2: Evaluate each option
SELECT DATE '2024-01-10' + INTERVAL '1 month + 15 days'; tries to combine units in one string, which is invalid syntax. SELECT DATE '2024-01-10' + INTERVAL '45 days'; adds 45 days, which is not exactly 1 month and 15 days. SELECT DATE '2024-01-10' + INTERVAL '1.5 months'; uses fractional months, which PostgreSQL does not support directly.
Final Answer:
SELECT DATE '2024-01-10' + INTERVAL '1 month' + INTERVAL '15 days'; -> Option A
Quick Check:
Separate intervals for months and days [OK]
Hint: Add months and days as separate intervals for accuracy [OK]
Common Mistakes:
Combining units in one interval string
Using fractional months
Adding days as total instead of separate
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.