What types of intervals can you use with DATE_ADD() and DATE_SUB()?
You can use intervals like DAY, MONTH, YEAR, HOUR, MINUTE, SECOND, and more.
Click to reveal answer
beginner
Why would you use DATE_SUB() in a database query?
To find a date before a given date, such as finding records older than a certain number of days.
Click to reveal answer
What will this query return? SELECT DATE_ADD('2024-06-10', INTERVAL 3 DAY);
A'2024-06-03'
B'2024-06-07'
C'2024-06-13'
D'2024-07-10'
✗ Incorrect
Adding 3 days to June 10, 2024 results in June 13, 2024.
Which function subtracts time from a date in MySQL?
ADATE_SUB()
BDATE_ADD()
CDATE_DIFF()
DDATE_REMOVE()
✗ Incorrect
DATE_SUB() subtracts a specified interval from a date.
What interval keyword would you use to add 2 months using DATE_ADD()?
ADAY
BMONTH
CYEAR
DHOUR
✗ Incorrect
MONTH is the correct interval keyword to add months.
If you want to find the date 10 days before today, which query is correct?
ASELECT DATE_SUB(CURDATE(), INTERVAL -10 DAY);
BSELECT DATE_ADD(CURDATE(), INTERVAL 10 DAY);
CSELECT DATE_ADD(CURDATE(), INTERVAL -10 DAY);
DSELECT DATE_SUB(CURDATE(), INTERVAL 10 DAY);
✗ Incorrect
DATE_SUB with 10 days subtracts 10 days from today.
Can DATE_ADD() and DATE_SUB() be used with time intervals like HOUR and MINUTE?
AYes, they support various time units including HOUR and MINUTE.
BNo, only DAY and MONTH are supported.
COnly DATE_ADD() supports time intervals.
DOnly DATE_SUB() supports time intervals.
✗ Incorrect
Both functions support many interval types including HOUR and MINUTE.
Explain how DATE_ADD() and DATE_SUB() work in MySQL and give an example of each.
Think about adding or subtracting time intervals from a date.
You got /4 concepts.
Describe a real-life situation where you might use DATE_SUB() in a database query.
Consider situations like finding expired items or past events.
You got /3 concepts.
Practice
(1/5)
1. What does the MySQL function DATE_ADD(date, INTERVAL expr unit) do?
easy
A. Returns the current date and time
B. Subtracts a specified time interval from a date
C. Adds a specified time interval to a date
D. Formats a date into a string
Solution
Step 1: Understand the function purpose
The function DATE_ADD is designed to add a time interval to a given date value.
Step 2: Compare options with function behavior
'Adds a specified time interval to a date' correctly states that it adds a specified time interval. 'Subtracts a specified time interval from a date' describes DATE_SUB, not DATE_ADD. The options for returning the current date and time and formatting a date into a string describe unrelated functions.
Final Answer:
Adds a specified time interval to a date -> Option C
Quick Check:
DATE_ADD adds time interval [OK]
Hint: DATE_ADD adds time; DATE_SUB subtracts time [OK]
Common Mistakes:
Confusing DATE_ADD with DATE_SUB
Thinking DATE_ADD formats dates
Assuming DATE_ADD returns current date
2. Which of the following is the correct syntax using DATE_SUB to subtract 10 days from the date '2024-06-15' in MySQL?
easy
A. DATE_ADD('2024-06-15', INTERVAL -10 DAY)
B. DATE_SUB('2024-06-15', INTERVAL 10 DAY)
C. DATE_SUB('2024-06-15', 10 DAY)
D. DATE_ADD('2024-06-15', 10 DAYS)
Solution
Step 1: Check correct function and syntax for subtraction
To subtract days, use DATE_SUB with INTERVAL keyword and unit DAY.
Step 2: Validate each option's syntax
DATE_SUB('2024-06-15', INTERVAL 10 DAY) uses correct syntax: DATE_SUB('date', INTERVAL 10 DAY). DATE_ADD('2024-06-15', INTERVAL -10 DAY) uses DATE_ADD with negative interval, which is not recommended. DATE_SUB('2024-06-15', 10 DAY) misses INTERVAL keyword. DATE_ADD('2024-06-15', 10 DAYS) misses the INTERVAL keyword and uses DATE_ADD which adds instead of subtracts.
Final Answer:
DATE_SUB('2024-06-15', INTERVAL 10 DAY) -> Option B
Quick Check:
Correct syntax uses DATE_SUB with INTERVAL [OK]
Hint: Use DATE_SUB with INTERVAL and unit DAY to subtract days [OK]
Common Mistakes:
Omitting INTERVAL keyword
Using plural unit like DAYS instead of DAY
Using DATE_ADD with negative interval
3. What is the result of this query?
SELECT DATE_ADD('2024-06-10', INTERVAL 3 MONTH) AS new_date;
medium
A. 2024-03-10
B. 2024-06-10
C. 2024-06-13
D. 2024-09-10
Solution
Step 1: Understand DATE_ADD with MONTH interval
The query adds 3 months to the date '2024-06-10'. Adding 3 months to June 10, 2024, results in September 10, 2024.
Step 2: Match the calculated date with options
2024-09-10 shows '2024-09-10', which matches the expected result. Other options are incorrect dates or no change.
Final Answer:
2024-09-10 -> Option D
Quick Check:
June 10 + 3 months = September 10 [OK]
Hint: Add months carefully; day stays same if possible [OK]
Common Mistakes:
Adding days instead of months
Confusing month addition with subtraction
Expecting day to change unexpectedly
4. Identify the error in this MySQL query:
SELECT DATE_SUB('2024-06-20', 5 DAY);
medium
A. Missing INTERVAL keyword before 5 DAY
B. Incorrect function name, should be DATE_ADD
C. Date format is invalid
D. DAY should be plural DAYS
Solution
Step 1: Review DATE_SUB syntax
The correct syntax requires the INTERVAL keyword before the number and unit, like DATE_SUB(date, INTERVAL expr unit).
Hint: Always include INTERVAL keyword with DATE_ADD/SUB [OK]
Common Mistakes:
Omitting INTERVAL keyword
Using plural unit DAYS instead of DAY
Confusing DATE_ADD and DATE_SUB
5. You want to find the date 2 weeks before the last day of the current month in MySQL using DATE_SUB. Which query correctly achieves this?
hard
A. SELECT DATE_SUB(LAST_DAY(CURDATE()), INTERVAL 2 WEEK) AS result;
B. SELECT DATE_ADD(LAST_DAY(CURDATE()), INTERVAL -2 WEEK) AS result;
C. SELECT DATE_SUB(CURDATE(), INTERVAL 2 WEEK) AS result;
D. SELECT DATE_ADD(LAST_DAY(CURDATE()), INTERVAL 2 WEEK) AS result;
Solution
Step 1: Understand the requirement
We need the date 2 weeks before the last day of the current month. LAST_DAY(CURDATE()) gives the last day of this month.
Step 2: Apply correct date arithmetic
Subtracting 2 weeks from that date is done with DATE_SUB(..., INTERVAL 2 WEEK). SELECT DATE_SUB(LAST_DAY(CURDATE()), INTERVAL 2 WEEK) AS result; uses this correctly. SELECT DATE_ADD(LAST_DAY(CURDATE()), INTERVAL -2 WEEK) AS result; uses DATE_ADD instead of DATE_SUB. SELECT DATE_SUB(CURDATE(), INTERVAL 2 WEEK) AS result; subtracts from current date, not last day. SELECT DATE_ADD(LAST_DAY(CURDATE()), INTERVAL 2 WEEK) AS result; adds 2 weeks, which is incorrect.
Final Answer:
SELECT DATE_SUB(LAST_DAY(CURDATE()), INTERVAL 2 WEEK) AS result; -> Option A
Quick Check:
Subtract 2 weeks from last day using DATE_SUB [OK]
Hint: Use LAST_DAY with DATE_SUB for relative month-end dates [OK]
Common Mistakes:
Subtracting from current date instead of last day
Using DATE_ADD with positive interval instead of subtraction
Confusing weeks with days in interval
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.