The EXTRACT function retrieves a specific part (like year, month, day) from a date or timestamp value.
Click to reveal answer
beginner
Write the syntax to extract the year from a timestamp column named 'created_at'.
EXTRACT(YEAR FROM created_at)
Click to reveal answer
intermediate
Which date parts can you extract using the EXTRACT function? Name at least three.
You can extract YEAR, MONTH, DAY, HOUR, MINUTE, SECOND, and more from date or timestamp values.
Click to reveal answer
intermediate
What type of value does EXTRACT return?
EXTRACT returns a numeric value representing the requested date part, usually as a double precision number.
Click to reveal answer
beginner
How would you extract the month from the current date in PostgreSQL?
Use EXTRACT(MONTH FROM CURRENT_DATE) to get the current month number.
Click to reveal answer
What does EXTRACT(DAY FROM timestamp) return?
AThe day of the week from the timestamp
BThe day of the month from the timestamp
CThe total number of days since 1970
DThe hour part of the timestamp
✗ Incorrect
EXTRACT(DAY FROM timestamp) returns the day of the month as a number.
Which of these is a valid EXTRACT syntax in PostgreSQL?
AEXTRACT(YEAR FROM timestamp)
BEXTRACT(YEAR, timestamp)
CEXTRACT timestamp YEAR
DEXTRACT FROM timestamp YEAR
✗ Incorrect
The correct syntax is EXTRACT(part FROM source), for example EXTRACT(YEAR FROM timestamp).
What will EXTRACT(HOUR FROM TIMESTAMP '2024-06-01 15:30:00') return?
A2024
B30
C6
D15
✗ Incorrect
It returns 15, the hour part of the timestamp.
Can EXTRACT be used on a DATE type in PostgreSQL?
ANo, only on TIME
BNo, only on TIMESTAMP
CYes, it works on DATE and TIMESTAMP types
DYes, but only for YEAR and MONTH
✗ Incorrect
EXTRACT works on both DATE and TIMESTAMP types.
What is the return type of EXTRACT function?
ADouble precision (numeric)
BInteger
CBoolean
DText
✗ Incorrect
EXTRACT returns a numeric value as double precision.
Explain how to use the EXTRACT function to get the month and day from a timestamp.
Think about the parts you want and the source date or timestamp.
You got /3 concepts.
List at least five different date parts you can extract using the EXTRACT function in PostgreSQL.
Consider parts of date and time.
You got /6 concepts.
Practice
(1/5)
1. What does the EXTRACT function do in PostgreSQL when used with a date or timestamp?
easy
A. It adds days to the date.
B. It changes the date format to a string.
C. It retrieves a specific part like year, month, or day from the date or timestamp.
D. It deletes the time part from the timestamp.
Solution
Step 1: Understand the purpose of EXTRACT
The EXTRACT function is designed to pull out specific parts such as year, month, day, hour, etc., from a date or timestamp value.
Step 2: Compare with other options
Options B, C, and D describe different operations like formatting, adding days, or truncating time, which EXTRACT does not do.
Final Answer:
It retrieves a specific part like year, month, or day from the date or timestamp. -> Option C
Quick Check:
EXTRACT returns date parts = A [OK]
Hint: EXTRACT pulls out parts like year or month from dates [OK]
Common Mistakes:
Thinking EXTRACT changes date format
Confusing EXTRACT with date arithmetic
Assuming EXTRACT removes time part
2. Which of the following is the correct syntax to extract the month from a timestamp column named created_at?
easy
A. EXTRACT(created_at, MONTH);
B. EXTRACT(MONTH FROM created_at);
C. EXTRACT('MONTH', created_at);
D. EXTRACT MONTH created_at;
Solution
Step 1: Recall correct EXTRACT syntax
The correct syntax is EXTRACT(part FROM source), so to get month: EXTRACT(MONTH FROM created_at);
Step 2: Identify incorrect syntax forms
Options A, B, and D use wrong argument order, quotes around part name, missing FROM keyword, or wrong punctuation.
Final Answer:
EXTRACT(MONTH FROM created_at); -> Option B
Quick Check:
EXTRACT(part FROM source) = C [OK]
Hint: Use EXTRACT(part FROM source) syntax exactly [OK]
Common Mistakes:
Omitting FROM keyword
Using quotes around part name
Swapping argument order
3. Given the query:
SELECT EXTRACT(DAY FROM TIMESTAMP '2024-06-15 10:30:00');
What will be the output?
medium
A. 10
B. 6
C. 2024
D. 15
Solution
Step 1: Identify the part extracted
The query extracts the DAY part from the timestamp '2024-06-15 10:30:00'. The day is 15.
Step 2: Confirm output value
Other options represent month (6), year (2024), and hour (10), which are not extracted here.
Final Answer:
15 -> Option D
Quick Check:
EXTRACT(DAY) = 15 [OK]
Hint: Match EXTRACT part with date component value [OK]
Common Mistakes:
Confusing day with month or year
Expecting full date output
Ignoring time part in timestamp
4. What is wrong with this query?
SELECT EXTRACT('YEAR' FROM CURRENT_DATE);
medium
A. The part name YEAR should not be in quotes.
B. CURRENT_DATE cannot be used with EXTRACT.
C. Missing parentheses around CURRENT_DATE.
D. EXTRACT requires two arguments separated by a comma.
Solution
Step 1: Check syntax for EXTRACT part
The part name like YEAR should be unquoted. Quotes cause syntax error.
Step 2: Verify other parts of query
CURRENT_DATE is valid input, no parentheses needed, and EXTRACT uses FROM keyword, not comma.
Final Answer:
The part name YEAR should not be in quotes. -> Option A
Quick Check:
Part names unquoted in EXTRACT [OK]
Hint: Do not put quotes around date parts in EXTRACT [OK]
Common Mistakes:
Using quotes around part names
Adding commas instead of FROM
Thinking CURRENT_DATE needs parentheses
5. You want to find all records from a table orders where the order was placed in the first quarter (January to March) of any year. Which query correctly uses EXTRACT to filter these records?
hard
A. SELECT * FROM orders WHERE EXTRACT(QUARTER FROM order_date) = 1;
B. SELECT * FROM orders WHERE EXTRACT('MONTH' FROM order_date) < 4;
C. SELECT * FROM orders WHERE EXTRACT(MONTH, order_date) IN (1, 2, 3);
D. SELECT * FROM orders WHERE EXTRACT(MONTH order_date) BETWEEN 1 AND 3;
Solution
Step 1: Understand quarter extraction
PostgreSQL supports EXTRACT(QUARTER FROM date) which returns 1 for Jan-Mar, 2 for Apr-Jun, etc.
Step 2: Evaluate each option
Options A (missing FROM), B (quotes around MONTH), and C (comma instead of FROM) have syntax errors. SELECT * FROM orders WHERE EXTRACT(QUARTER FROM order_date) = 1; correctly uses EXTRACT(QUARTER FROM order_date) = 1.
Final Answer:
SELECT * FROM orders WHERE EXTRACT(QUARTER FROM order_date) = 1; -> Option A
Quick Check:
Use EXTRACT(QUARTER) = 1 for first quarter [OK]
Hint: Use EXTRACT(QUARTER) = 1 for first quarter filtering [OK]
Common Mistakes:
Missing FROM keyword
Using quotes around part names
Using comma instead of FROM
Not knowing EXTRACT supports QUARTER
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.